{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a57d6663-4055-40a6-a9fc-dffb38c418b1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:51.501854Z",
     "iopub.status.busy": "2024-10-14T02:10:51.501089Z",
     "iopub.status.idle": "2024-10-14T02:10:51.510915Z",
     "shell.execute_reply": "2024-10-14T02:10:51.508693Z"
    },
    "papermill": {
     "duration": 0.123132,
     "end_time": "2024-10-14T02:10:51.515992",
     "exception": false,
     "start_time": "2024-10-14T02:10:51.392860",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "%%capture --no-stderr\n",
    "!pip install -U langchain langchain-community langchain-openai langchain-cohere pypdf sentence_transformers chromadb shutil openpyxl FlagEmbedding cohere"
   ]
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": [
    "%env LLM_API_KEY=替换为自己的Qwen API Key\n",
    "%env LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1"
   ],
   "id": "cb4cf3ba20ca76db"
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1b6c2792-91bf-464a-bb0d-9724f790c6f9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:51.903302Z",
     "iopub.status.busy": "2024-10-14T02:10:51.902436Z",
     "iopub.status.idle": "2024-10-14T02:10:55.154008Z",
     "shell.execute_reply": "2024-10-14T02:10:55.153562Z"
    },
    "papermill": {
     "duration": 3.344135,
     "end_time": "2024-10-14T02:10:55.154981",
     "exception": false,
     "start_time": "2024-10-14T02:10:51.810846",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/lib/python3.10/site-packages/sentence_transformers/cross_encoder/CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n",
      "  from tqdm.autonotebook import tqdm, trange\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/lib/python3.10/site-packages/pydantic/_internal/_config.py:341: UserWarning: Valid config keys have changed in V2:\n",
      "* 'allow_population_by_field_name' has been renamed to 'populate_by_name'\n",
      "* 'smart_union' has been removed\n",
      "  warnings.warn(message, UserWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "langchain                     0.2.10\n",
      "langchain_core                0.2.28\n",
      "langchain_community           0.2.9\n",
      "pypdf                         4.3.1\n",
      "sentence_transformers         3.0.1\n",
      "cohere                        5.8.0\n",
      "chromadb                      0.5.4\n"
     ]
    }
   ],
   "source": [
    "import langchain, langchain_community, pypdf, sentence_transformers, chromadb, langchain_core, cohere\n",
    "\n",
    "for module in (langchain, langchain_core, langchain_community, pypdf, sentence_transformers, cohere, chromadb):\n",
    "    print(f\"{module.__name__:<30}{module.__version__}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "1e2c72b8-ee12-4130-af88-699998aa230c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:55.345748Z",
     "iopub.status.busy": "2024-10-14T02:10:55.345416Z",
     "iopub.status.idle": "2024-10-14T02:10:55.347903Z",
     "shell.execute_reply": "2024-10-14T02:10:55.347443Z"
    },
    "papermill": {
     "duration": 0.074902,
     "end_time": "2024-10-14T02:10:55.348875",
     "exception": false,
     "start_time": "2024-10-14T02:10:55.273973",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "841d2b02-ad06-40d2-b11f-c7adccec6ca2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:55.504788Z",
     "iopub.status.busy": "2024-10-14T02:10:55.504020Z",
     "iopub.status.idle": "2024-10-14T02:10:55.514644Z",
     "shell.execute_reply": "2024-10-14T02:10:55.512332Z"
    },
    "papermill": {
     "duration": 0.096621,
     "end_time": "2024-10-14T02:10:55.519612",
     "exception": false,
     "start_time": "2024-10-14T02:10:55.422991",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "expr_version = 'retrieval_v11_rerank_n_chunks'\n",
    "\n",
    "preprocess_output_dir = os.path.join(os.path.pardir, 'outputs', 'v1_20240713')\n",
    "expr_dir = os.path.join(os.path.pardir, 'experiments', expr_version)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf7e81e3-4c82-4842-aef5-7592caaf1d39",
   "metadata": {
    "papermill": {
     "duration": 0.104375,
     "end_time": "2024-10-14T02:10:55.713256",
     "exception": false,
     "start_time": "2024-10-14T02:10:55.608881",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 读取文档"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "e6920e29-bc7d-4635-be06-d151eaf0e100",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:55.917577Z",
     "iopub.status.busy": "2024-10-14T02:10:55.916623Z",
     "iopub.status.idle": "2024-10-14T02:10:57.498433Z",
     "shell.execute_reply": "2024-10-14T02:10:57.497945Z"
    },
    "papermill": {
     "duration": 1.685627,
     "end_time": "2024-10-14T02:10:57.499563",
     "exception": false,
     "start_time": "2024-10-14T02:10:55.813936",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from langchain_community.document_loaders import PyPDFLoader\n",
    "\n",
    "loader = PyPDFLoader(os.path.join(os.path.pardir, 'data', '2024全球经济金融展望报告.pdf'))\n",
    "documents = loader.load()\n",
    "\n",
    "qa_df = pd.read_excel(os.path.join(preprocess_output_dir, 'question_answer.xlsx'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "841ec659-4ad7-4e1f-b1ea-3477bf97fde3",
   "metadata": {
    "papermill": {
     "duration": 0.15206,
     "end_time": "2024-10-14T02:10:57.778257",
     "exception": false,
     "start_time": "2024-10-14T02:10:57.626197",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 文档切分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "74fe856a-7c19-4c3c-bb30-7abfa6298f74",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:58.052046Z",
     "iopub.status.busy": "2024-10-14T02:10:58.051410Z",
     "iopub.status.idle": "2024-10-14T02:10:58.065964Z",
     "shell.execute_reply": "2024-10-14T02:10:58.065158Z"
    },
    "papermill": {
     "duration": 0.173703,
     "end_time": "2024-10-14T02:10:58.067802",
     "exception": false,
     "start_time": "2024-10-14T02:10:57.894099",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from uuid import uuid4\n",
    "import os\n",
    "import pickle\n",
    "\n",
    "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
    "\n",
    "def split_docs(documents, filepath, chunk_size=400, chunk_overlap=40, seperators=['\\n\\n\\n', '\\n\\n'], force_split=False):\n",
    "    if os.path.exists(filepath) and not force_split:\n",
    "        print('found cache, restoring...')\n",
    "        return pickle.load(open(filepath, 'rb'))\n",
    "\n",
    "    splitter = RecursiveCharacterTextSplitter(\n",
    "        chunk_size=chunk_size,\n",
    "        chunk_overlap=chunk_overlap,\n",
    "        separators=seperators\n",
    "    )\n",
    "    split_docs = splitter.split_documents(documents)\n",
    "    for chunk in split_docs:\n",
    "        chunk.metadata['uuid'] = str(uuid4())\n",
    "\n",
    "    pickle.dump(split_docs, open(filepath, 'wb'))\n",
    "\n",
    "    return split_docs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "aa25540d-0504-4ae7-9804-9e3862b132d5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:58.288822Z",
     "iopub.status.busy": "2024-10-14T02:10:58.288046Z",
     "iopub.status.idle": "2024-10-14T02:10:58.301723Z",
     "shell.execute_reply": "2024-10-14T02:10:58.299449Z"
    },
    "papermill": {
     "duration": 0.155698,
     "end_time": "2024-10-14T02:10:58.306542",
     "exception": false,
     "start_time": "2024-10-14T02:10:58.150844",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "found cache, restoring...\n"
     ]
    }
   ],
   "source": [
    "splitted_docs = split_docs(documents, os.path.join(preprocess_output_dir, 'split_docs.pkl'), chunk_size=500, chunk_overlap=50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "220dbc3a-fceb-4e49-a3f1-01e16660b2a6",
   "metadata": {
    "papermill": {
     "duration": 0.073947,
     "end_time": "2024-10-14T02:10:58.470664",
     "exception": false,
     "start_time": "2024-10-14T02:10:58.396717",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 检索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "8598a11c-25d8-4af1-a98b-06a8c394e261",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:58.649807Z",
     "iopub.status.busy": "2024-10-14T02:10:58.649629Z",
     "iopub.status.idle": "2024-10-14T02:10:58.663419Z",
     "shell.execute_reply": "2024-10-14T02:10:58.662954Z"
    },
    "papermill": {
     "duration": 0.10413,
     "end_time": "2024-10-14T02:10:58.664389",
     "exception": false,
     "start_time": "2024-10-14T02:10:58.560259",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "device: cuda\n"
     ]
    }
   ],
   "source": [
    "from langchain.embeddings import HuggingFaceBgeEmbeddings\n",
    "import torch\n",
    "\n",
    "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
    "print(f'device: {device}')\n",
    "\n",
    "def get_embeddings(model_path):\n",
    "    embeddings = HuggingFaceBgeEmbeddings(\n",
    "        model_name=model_path,\n",
    "        model_kwargs={'device': device},\n",
    "        encode_kwargs={'normalize_embeddings': True},\n",
    "        # show_progress=True\n",
    "        query_instruction='为这个句子生成表示以用于检索相关文章：'\n",
    "    )\n",
    "    return embeddings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "663ef1a4-5866-4f6b-8d9d-4724f62142cb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:10:58.831316Z",
     "iopub.status.busy": "2024-10-14T02:10:58.830518Z",
     "iopub.status.idle": "2024-10-14T02:11:13.916414Z",
     "shell.execute_reply": "2024-10-14T02:11:13.915938Z"
    },
    "papermill": {
     "duration": 15.178786,
     "end_time": "2024-10-14T02:11:13.917492",
     "exception": false,
     "start_time": "2024-10-14T02:10:58.738706",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Loading model from cache /tmp/jieba.cache\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Loading model cost 0.464 seconds.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Prefix dict has been built successfully.\n"
     ]
    }
   ],
   "source": [
    "import jieba\n",
    "import shutil\n",
    "\n",
    "from tqdm.auto import tqdm\n",
    "from langchain_community.vectorstores import Chroma\n",
    "from langchain.retrievers import BM25Retriever, EnsembleRetriever\n",
    "\n",
    "# 如果已下载，可以替换为本机路径\n",
    "model_path = 'stevenluo/bge-large-zh-v1.5-ft-v4'\n",
    "embeddings = get_embeddings(model_path)\n",
    "\n",
    "persist_directory = os.path.join(expr_dir, 'chroma', 'bge')\n",
    "shutil.rmtree(persist_directory, ignore_errors=True)\n",
    "vector_db = Chroma.from_documents(\n",
    "    splitted_docs,\n",
    "    embedding=embeddings,\n",
    "    persist_directory=persist_directory\n",
    ")\n",
    "chz_cut_bm25_retriever = BM25Retriever.from_documents(splitted_docs, preprocess_func=lambda text: list(jieba.cut(text)))\n",
    "\n",
    "def build_get_ensemble_retriver_fn(weights=[0.5, 0.5]):\n",
    "    return lambda k: EnsembleRetriever(\n",
    "        retrievers=[vector_db.as_retriever(search_kwargs={'k': k}), chz_cut_bm25_retriever], weights=weights\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b03e3382-39e9-4932-a265-69b811041629",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:14.111930Z",
     "iopub.status.busy": "2024-10-14T02:11:14.111171Z",
     "iopub.status.idle": "2024-10-14T02:11:14.122807Z",
     "shell.execute_reply": "2024-10-14T02:11:14.121371Z"
    },
    "papermill": {
     "duration": 0.099433,
     "end_time": "2024-10-14T02:11:14.125425",
     "exception": false,
     "start_time": "2024-10-14T02:11:14.025992",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "test_df = qa_df[(qa_df['dataset'] == 'test') & (qa_df['qa_type'] == 'detailed')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2a85eaca-f90b-4293-ad02-a721192d4213",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:14.302335Z",
     "iopub.status.busy": "2024-10-14T02:11:14.300699Z",
     "iopub.status.idle": "2024-10-14T02:11:14.318076Z",
     "shell.execute_reply": "2024-10-14T02:11:14.315726Z"
    },
    "papermill": {
     "duration": 0.117727,
     "end_time": "2024-10-14T02:11:14.322919",
     "exception": false,
     "start_time": "2024-10-14T02:11:14.205192",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "from transformers import AutoModelForSequenceClassification, AutoTokenizer\n",
    "\n",
    "class HuggingfaceReranker:\n",
    "    def __init__(self, model_name, model_kwargs: dict):\n",
    "        self._tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
    "        self._model = AutoModelForSequenceClassification.from_pretrained(\n",
    "            model_name, **model_kwargs\n",
    "        )\n",
    "\n",
    "    def compute_score(self, pairs):\n",
    "        if hasattr(self._model, 'compute_score'):\n",
    "            return self._model.compute_score(pairs)\n",
    "\n",
    "        with torch.no_grad():\n",
    "            inputs = self._tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)\n",
    "            inputs = inputs.to(self._model.device)\n",
    "            scores = self._model(**inputs, return_dict=True).logits.view(-1, ).float()\n",
    "        return scores.cpu().numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "4938875e-edc0-47b3-992a-0adc8958f9cc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:14.520705Z",
     "iopub.status.busy": "2024-10-14T02:11:14.519916Z",
     "iopub.status.idle": "2024-10-14T02:11:14.534075Z",
     "shell.execute_reply": "2024-10-14T02:11:14.531934Z"
    },
    "papermill": {
     "duration": 0.117105,
     "end_time": "2024-10-14T02:11:14.538962",
     "exception": false,
     "start_time": "2024-10-14T02:11:14.421857",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "def rerank(reranker, query, retrieved_docs, top_k=5, debug=False):\n",
    "    rerank_scores = reranker.compute_score([[query, doc.page_content] for doc in retrieved_docs])\n",
    "    triads = [(query, doc, score) for doc, score in zip(retrieved_docs, rerank_scores)]\n",
    "    triads = sorted(triads, key=lambda triad: triad[-1], reverse=True)\n",
    "    if debug:\n",
    "        return triads\n",
    "    return [triad[1] for triad in triads][:top_k]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "a52a7737-8041-4802-bc77-a4c4acd6877c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:14.799192Z",
     "iopub.status.busy": "2024-10-14T02:11:14.798396Z",
     "iopub.status.idle": "2024-10-14T02:11:14.838007Z",
     "shell.execute_reply": "2024-10-14T02:11:14.836419Z"
    },
    "papermill": {
     "duration": 0.129757,
     "end_time": "2024-10-14T02:11:14.840735",
     "exception": false,
     "start_time": "2024-10-14T02:11:14.710978",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from FlagEmbedding import FlagReranker\n",
    "\n",
    "def get_hit_stat_df(get_retriever_fn, reranker, retirever_multiplier=3):\n",
    "    hit_stat_data = []\n",
    "    \n",
    "    top_k_arr = list(range(1, 9))\n",
    "    for k in tqdm(top_k_arr):\n",
    "        retriever = get_retriever_fn(k * retirever_multiplier)\n",
    "        for idx, row in test_df.iterrows():\n",
    "            question = row['question']\n",
    "            true_uuid = row['uuid']\n",
    "            chunks = retriever.get_relevant_documents(question)[:k * retirever_multiplier]\n",
    "            chunks = rerank(reranker, question, chunks, top_k=k)\n",
    "            retrieved_uuids = [doc.metadata['uuid'] for doc in chunks][:k]\n",
    "    \n",
    "            hit_stat_data.append({\n",
    "                'question': question,\n",
    "                'top_k': k,\n",
    "                'hit': int(true_uuid in retrieved_uuids)\n",
    "            })\n",
    "    hit_stat_df = pd.DataFrame(hit_stat_data)\n",
    "    return hit_stat_df\n",
    "\n",
    "def get_reranker(path):\n",
    "    \"\"\"\n",
    "    屏蔽不同Reranker的差异，封装一个同一个的类获取这些Reranker的示例\n",
    "    \"\"\"\n",
    "    \n",
    "    if 'bge' in path.lower():\n",
    "        return FlagReranker(path, use_fp16=True)\n",
    "    else:\n",
    "        return HuggingfaceReranker(path, model_kwargs={'trust_remote_code': True, 'torch_dtype': torch.float16, 'device_map': device})"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1fef3ac-4928-48ef-bf73-7d3ee33e9d19",
   "metadata": {
    "papermill": {
     "duration": 0.100153,
     "end_time": "2024-10-14T02:11:15.029876",
     "exception": false,
     "start_time": "2024-10-14T02:11:14.929723",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "72108fa6-06ac-4873-a73e-300a087d751e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:15.220806Z",
     "iopub.status.busy": "2024-10-14T02:11:15.220458Z",
     "iopub.status.idle": "2024-10-14T02:11:15.243578Z",
     "shell.execute_reply": "2024-10-14T02:11:15.242623Z"
    },
    "papermill": {
     "duration": 0.126089,
     "end_time": "2024-10-14T02:11:15.245664",
     "exception": false,
     "start_time": "2024-10-14T02:11:15.119575",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from langchain.llms import Ollama\n",
    "\n",
    "ollama_llm = Ollama(\n",
    "    model='qwen2:7b-instruct-32k',\n",
    "    base_url='http://localhost:11434',\n",
    "    temperature=0\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "c40bb5d6-9b9c-42c0-b12d-e33522186229",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:15.424822Z",
     "iopub.status.busy": "2024-10-14T02:11:15.422879Z",
     "iopub.status.idle": "2024-10-14T02:11:15.437828Z",
     "shell.execute_reply": "2024-10-14T02:11:15.435445Z"
    },
    "papermill": {
     "duration": 0.111429,
     "end_time": "2024-10-14T02:11:15.442753",
     "exception": false,
     "start_time": "2024-10-14T02:11:15.331324",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "def rag(llm, retriever, reranker, query, n_chunks=4, retirever_multiplier=3):\n",
    "    prompt_tmpl = \"\"\"\n",
    "你是一个金融分析师，擅长根据所获取的信息片段，对问题进行分析和推理。\n",
    "你的任务是根据所获取的信息片段（<<<<context>>><<<</context>>>之间的内容）回答问题。\n",
    "回答保持简洁，不必重复问题，不要添加描述性解释和与答案无关的任何内容。\n",
    "已知信息：\n",
    "<<<<context>>>\n",
    "{{knowledge}}\n",
    "<<<</context>>>\n",
    "\n",
    "问题：{{query}}\n",
    "请回答：\n",
    "\"\"\".strip()\n",
    "\n",
    "    chunks = retriever.invoke(query)[:n_chunks * retirever_multiplier]\n",
    "    chunks = rerank(reranker, query, chunks, top_k=n_chunks)\n",
    "    prompt = prompt_tmpl.replace('{{knowledge}}', '\\n\\n'.join([doc.page_content for doc in chunks])).replace('{{query}}', query)\n",
    "\n",
    "    return llm.invoke(prompt), chunks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "24edd1a1-be8d-4d52-8ab4-a285d923e257",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:15.634898Z",
     "iopub.status.busy": "2024-10-14T02:11:15.634326Z",
     "iopub.status.idle": "2024-10-14T02:11:15.646881Z",
     "shell.execute_reply": "2024-10-14T02:11:15.645913Z"
    },
    "papermill": {
     "duration": 0.105684,
     "end_time": "2024-10-14T02:11:15.648809",
     "exception": false,
     "start_time": "2024-10-14T02:11:15.543125",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "prediction_df = qa_df[qa_df['dataset'] == 'test'][['uuid', 'question', 'qa_type', 'answer']].rename(columns={'answer': 'ref_answer'})\n",
    "\n",
    "def predict(llm, retriever, reranker, prediction_df, n_chunks):\n",
    "    prediction_df = prediction_df.copy()\n",
    "    answer_dict = {}\n",
    "\n",
    "    for idx, row in tqdm(prediction_df.iterrows(), total=len(prediction_df)):\n",
    "        uuid = row['uuid']\n",
    "        question = row['question']\n",
    "        answer, chunks = rag(llm, retriever, reranker, question, n_chunks=n_chunks)\n",
    "        assert len(chunks) <= n_chunks\n",
    "        answer_dict[question] = {\n",
    "            'uuid': uuid,\n",
    "            'ref_answer': row['ref_answer'],\n",
    "            'gen_answer': answer,\n",
    "            'chunks': chunks\n",
    "        }\n",
    "    prediction_df.loc[:, 'gen_answer'] = prediction_df['question'].apply(lambda q: answer_dict[q]['gen_answer'])\n",
    "    prediction_df.loc[:, 'chunks'] = prediction_df['question'].apply(lambda q: answer_dict[q]['chunks'])\n",
    "\n",
    "    return prediction_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "db571983-7054-4f8f-938a-e698dd033797",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:15.814031Z",
     "iopub.status.busy": "2024-10-14T02:11:15.813267Z",
     "iopub.status.idle": "2024-10-14T02:11:15.822308Z",
     "shell.execute_reply": "2024-10-14T02:11:15.820234Z"
    },
    "papermill": {
     "duration": 0.095051,
     "end_time": "2024-10-14T02:11:15.827164",
     "exception": false,
     "start_time": "2024-10-14T02:11:15.732113",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "pred_dfs = {}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "00b8643e-c16c-446c-882d-696d7751a9ae",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:16.014738Z",
     "iopub.status.busy": "2024-10-14T02:11:16.013961Z",
     "iopub.status.idle": "2024-10-14T02:11:57.059737Z",
     "shell.execute_reply": "2024-10-14T02:11:57.059232Z"
    },
    "papermill": {
     "duration": 41.138401,
     "end_time": "2024-10-14T02:11:57.060797",
     "exception": false,
     "start_time": "2024-10-14T02:11:15.922396",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "n_chunks_arr = range(1, 9)\n",
    "retirever_multiplier = 3\n",
    "gte_reranker = get_reranker('AlibabaNLP/gte-multilingual-reranker-base')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "0302e3d7-802a-4384-85f8-d345da77ea1f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:57.260365Z",
     "iopub.status.busy": "2024-10-14T02:11:57.259582Z",
     "iopub.status.idle": "2024-10-14T02:11:57.269221Z",
     "shell.execute_reply": "2024-10-14T02:11:57.267112Z"
    },
    "papermill": {
     "duration": 0.106013,
     "end_time": "2024-10-14T02:11:57.274069",
     "exception": false,
     "start_time": "2024-10-14T02:11:57.168056",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "get_retriever_fn = build_get_ensemble_retriver_fn(weights=[0.5, 0.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "81881a78-73b0-4aa1-b4d4-e9a16a2571be",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T02:11:57.458120Z",
     "iopub.status.busy": "2024-10-14T02:11:57.457953Z",
     "iopub.status.idle": "2024-10-14T03:03:05.726497Z",
     "shell.execute_reply": "2024-10-14T03:03:05.725673Z"
    },
    "papermill": {
     "duration": 3068.52774,
     "end_time": "2024-10-14T03:03:05.900325",
     "exception": false,
     "start_time": "2024-10-14T02:11:57.372585",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=1\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "34889113ea0e4163965706e36cacd03a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=2\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "336bf7a9ffe74fcd872edc6b8cc381f0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=3\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "74d6d819a65648359d722b30bf642ccc",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=4\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a13395b6e79e487c938057b65d186537",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=5\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "81b4fe199f4a4874bc9c52e49ef1ef9c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=6\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5b5223514f69450994fe4815da92f91e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=7\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "df196f67ddf7462a86e854732ef1ffb7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=8\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "37f38c099e8544de853f04aaa83f9a05",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for n_chunks in n_chunks_arr:\n",
    "    if n_chunks in pred_dfs:\n",
    "        continue\n",
    "\n",
    "    print(f\"n_chunks={n_chunks}\")\n",
    "    retriever = get_retriever_fn(n_chunks * retirever_multiplier)\n",
    "    pred_dfs[n_chunks] = predict(ollama_llm, retriever, gte_reranker, prediction_df, n_chunks=n_chunks)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c88911a7-71da-42b8-aaba-348a3131d657",
   "metadata": {
    "papermill": {
     "duration": 0.099867,
     "end_time": "2024-10-14T03:03:06.098971",
     "exception": false,
     "start_time": "2024-10-14T03:03:05.999104",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 评估 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "e2343b64-57a1-4a77-a25d-a769ea018692",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:03:06.308366Z",
     "iopub.status.busy": "2024-10-14T03:03:06.307593Z",
     "iopub.status.idle": "2024-10-14T03:03:06.543914Z",
     "shell.execute_reply": "2024-10-14T03:03:06.543440Z"
    },
    "papermill": {
     "duration": 0.345144,
     "end_time": "2024-10-14T03:03:06.544950",
     "exception": false,
     "start_time": "2024-10-14T03:03:06.199806",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from langchain_openai import ChatOpenAI\n",
    "\n",
    "judge_llm = ChatOpenAI(\n",
    "    api_key=os.environ['LLM_API_KEY'],\n",
    "    base_url=os.environ['LLM_BASE_URL'],\n",
    "    model_name='qwen2-72b-instruct',\n",
    "    temperature=0\n",
    ")\n",
    "\n",
    "import time\n",
    "\n",
    "def evaluate(prediction_df):\n",
    "    \"\"\"\n",
    "    对预测结果进行打分\n",
    "    :param prediction_df: 预测结果，需要包含问题，参考答案，生成的答案，列名分别为question, ref_answer, gen_answer\n",
    "    :return 打分模型原始返回结果\n",
    "    \"\"\"\n",
    "    prompt_tmpl = \"\"\"\n",
    "你是一个经济学博士，现在我有一系列问题，有一个助手已经对这些问题进行了回答，你需要参照参考答案，评价这个助手的回答是否正确，仅回复“是”或“否”即可，不要带其他描述性内容或无关信息。\n",
    "问题：\n",
    "<question>\n",
    "{{question}}\n",
    "</question>\n",
    "\n",
    "参考答案：\n",
    "<ref_answer>\n",
    "{{ref_answer}}\n",
    "</ref_answer>\n",
    "\n",
    "助手回答：\n",
    "<gen_answer>\n",
    "{{gen_answer}}\n",
    "</gen_answer>\n",
    "请评价：\n",
    "    \"\"\"\n",
    "    results = []\n",
    "\n",
    "    for _, row in tqdm(prediction_df.iterrows(), total=len(prediction_df)):\n",
    "        question = row['question']\n",
    "        ref_answer = row['ref_answer']\n",
    "        gen_answer = row['gen_answer']\n",
    "\n",
    "        prompt = prompt_tmpl.replace('{{question}}', question).replace('{{ref_answer}}', str(ref_answer)).replace('{{gen_answer}}', gen_answer).strip()\n",
    "\n",
    "        retry_count = 3\n",
    "        result = None\n",
    "        \n",
    "        while retry_count > 0:\n",
    "            try:\n",
    "                result = judge_llm.invoke(prompt).content\n",
    "                break\n",
    "            except:\n",
    "                time.sleep(4 ** (5 - retry_count))\n",
    "                retry_count -= 1\n",
    "\n",
    "        if result is None:\n",
    "            print(f'question={question}, scoring failed!')\n",
    "        results.append(result)\n",
    "        \n",
    "        time.sleep(1)\n",
    "    return results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "edda3e5b-02bd-432f-bf93-a4fb6cb8568c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:03:06.770768Z",
     "iopub.status.busy": "2024-10-14T03:03:06.769997Z",
     "iopub.status.idle": "2024-10-14T03:24:36.804713Z",
     "shell.execute_reply": "2024-10-14T03:24:36.804232Z"
    },
    "papermill": {
     "duration": 1290.138513,
     "end_time": "2024-10-14T03:24:36.805760",
     "exception": false,
     "start_time": "2024-10-14T03:03:06.667247",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f4de0ae536864134bac9ce3defeb3415",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=1: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "57e347e93b6544ed906868835d6f329e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=2: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0387603da5704bac98b6fcd22d1ab212",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=3: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "65b1fa8834c24b2583ec494ec93a2624",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=4: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f8c9269ecb8743a48d480040f1480a86",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=5: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "faacec62fb0a4f138fee63b56e08c091",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=6: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6b8e4bf2b8274305a25a208883f355f7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=7: ['是' '否']\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e85288ec6f754db1896b61068d5fbb4e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_chunks=8: ['是' '否']\n"
     ]
    }
   ],
   "source": [
    "for n_chunks, pred_df in pred_dfs.items():\n",
    "    pred_df['raw_score'] = evaluate(pred_df)\n",
    "    print(f\"n_chunks={n_chunks}: {pred_df['raw_score'].unique()}\")\n",
    "    pred_df['score'] = (pred_df['raw_score'] == '是').astype(int)\n",
    "    \n",
    "    time.sleep(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "96630464-0957-474b-94ca-21fcc31386d8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:24:37.007581Z",
     "iopub.status.busy": "2024-10-14T03:24:37.006454Z",
     "iopub.status.idle": "2024-10-14T03:24:37.020903Z",
     "shell.execute_reply": "2024-10-14T03:24:37.018513Z"
    },
    "papermill": {
     "duration": 0.111021,
     "end_time": "2024-10-14T03:24:37.025777",
     "exception": false,
     "start_time": "2024-10-14T03:24:36.914756",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "metrics = []\n",
    "\n",
    "for n_chunks, pred_df in pred_dfs.items():\n",
    "    metrics.append({\n",
    "        'n_chunks': n_chunks,\n",
    "        'accuracy': pred_df['score'].mean()\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "c72cf8a9-ac69-4a70-928b-61a109eefe0f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:24:37.204879Z",
     "iopub.status.busy": "2024-10-14T03:24:37.204111Z",
     "iopub.status.idle": "2024-10-14T03:24:37.214128Z",
     "shell.execute_reply": "2024-10-14T03:24:37.211986Z"
    },
    "papermill": {
     "duration": 0.114887,
     "end_time": "2024-10-14T03:24:37.219193",
     "exception": false,
     "start_time": "2024-10-14T03:24:37.104306",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "metrics_df = pd.DataFrame(metrics)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "43c45ce3-463f-48cd-9b8a-8e2b179cd3b2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:24:37.402637Z",
     "iopub.status.busy": "2024-10-14T03:24:37.402462Z",
     "iopub.status.idle": "2024-10-14T03:24:37.408271Z",
     "shell.execute_reply": "2024-10-14T03:24:37.407899Z"
    },
    "papermill": {
     "duration": 0.10405,
     "end_time": "2024-10-14T03:24:37.409200",
     "exception": false,
     "start_time": "2024-10-14T03:24:37.305150",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>n_chunks</th>\n",
       "      <th>accuracy</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>0.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>0.89</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>0.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>0.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>0.83</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   n_chunks  accuracy\n",
       "0         1      0.78\n",
       "1         2      0.83\n",
       "2         3      0.88\n",
       "3         4      0.89\n",
       "4         5      0.90\n",
       "5         6      0.91\n",
       "6         7      0.87\n",
       "7         8      0.83"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "metrics_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "8d915a87-0175-4101-8e24-b02fbd4e890f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:24:37.595135Z",
     "iopub.status.busy": "2024-10-14T03:24:37.594288Z",
     "iopub.status.idle": "2024-10-14T03:24:37.984390Z",
     "shell.execute_reply": "2024-10-14T03:24:37.983919Z"
    },
    "papermill": {
     "duration": 0.493677,
     "end_time": "2024-10-14T03:24:37.985336",
     "exception": false,
     "start_time": "2024-10-14T03:24:37.491659",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='n_chunks', ylabel='accuracy'>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGxCAYAAACeKZf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmZElEQVR4nO3de1jUdd7/8dcAcvCQh1AQ4pBm4Qk1SC487hpF6s2ud63rum262O19l5AoWymeMEtBf0m2qyvpHdlumbqW3h1MV0n0Ltk8havrKTvBrYJ6t4riBjozvz+6ouUGDcZhvvjh+biuua6dz3y/M+/velVPv/OdGZvT6XQKAADAEF5WDwAAAOBOxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAo/hYPYCnORwOnTp1Sm3atJHNZrN6HAAAUA9Op1MXL15USEiIvLyuf26m2cXNqVOnFBYWZvUYAADABSUlJbrtttuuu02zi5s2bdpI+vb/nFtuucXiaQAAQH2Ul5crLCys+r/j19Ps4ua7t6JuueUW4gYAgJtMfS4p4YJiAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABG8bF6AABA45n/q59ZPYJbzHxtvdUj4CbCmRsAAGAU4gYAABiFt6UANAtLf/OO1SO4ReriJKtHAJo8ztwAAACjEDcAAMAoxA0AADAK19wAzcyOIUOtHsEthu7cYfUIAJooztwAAACjEDcAAMAoxA0AADAK19yg2Rr4u4FWj+AWHz3xkdUjAECTwpkbAABgFOIGAAAYhbgBAABG4ZobAIBxjsz/wOoR3KL7zGFWj3BT4swNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACj+Fg9AKxXPK+31SO4Rficg1aPAACWmjt3rtUjuMWNHgdnbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFMvjZtmyZYqMjJS/v7/i4uK0e/fu626/ZMkS3XXXXQoICFBYWJimTp2qb775xkPTAgCAps7SuFm7dq3S09OVmZmp/fv3q0+fPkpMTNSZM2fq3H716tWaPn26MjMzdeTIEb388stau3atZsyY4eHJAQBAU2Vp3OTk5GjixIlKTk5Wjx49lJubq5YtWyovL6/O7Xft2qWBAwfql7/8pSIjI3X//fdr7NixP3i2BwAANB+WxU1VVZX27dunhISE74fx8lJCQoIKCwvr3GfAgAHat29fdcx8/vnn2rRpk0aMGHHN16msrFR5eXmNGwAAMJdlP79w7tw52e12BQUF1VgPCgrS0aNH69znl7/8pc6dO6dBgwbJ6XTq6tWreuyxx677tlRWVpaeeeYZt84OAACaLssvKG6IgoICLViwQL///e+1f/9+vfXWW3rvvff07LPPXnOfjIwMXbhwofpWUlLiwYkBAICnWXbmJjAwUN7e3iorK6uxXlZWpuDg4Dr3mT17th555BH927/9mySpd+/eqqio0L//+79r5syZ8vKq3Wp+fn7y8/Nz/wEAAIAmybIzN76+voqJiVF+fn71msPhUH5+vuLj4+vc5/Lly7UCxtvbW5LkdDobb1gAAHDTsOzMjSSlp6dr/Pjxio2NVf/+/bVkyRJVVFQoOTlZkjRu3DiFhoYqKytLkpSUlKScnBz169dPcXFxOnHihGbPnq2kpKTqyAEAAM2bpXEzZswYnT17VnPmzFFpaan69u2rzZs3V19kXFxcXONMzaxZs2Sz2TRr1iydPHlSHTt2VFJSkubPn2/VIQAAgCbG0riRpNTUVKWmptb5WEFBQY37Pj4+yszMVGZmpgcmAwAAN6Ob6tNSAAAAP8TyMzdNScxTf7B6BLfY9//GWT0CAACW4cwNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAolsfNsmXLFBkZKX9/f8XFxWn37t3X3f78+fNKSUlR586d5efnpzvvvFObNm3y0LQAAKCp87HyxdeuXav09HTl5uYqLi5OS5YsUWJioo4dO6ZOnTrV2r6qqkr33XefOnXqpPXr1ys0NFRfffWV2rVr5/nhAQBAk2Rp3OTk5GjixIlKTk6WJOXm5uq9995TXl6epk+fXmv7vLw8ff3119q1a5datGghSYqMjPTkyAAAoImz7G2pqqoq7du3TwkJCd8P4+WlhIQEFRYW1rnP22+/rfj4eKWkpCgoKEi9evXSggULZLfbr/k6lZWVKi8vr3EDAADmsixuzp07J7vdrqCgoBrrQUFBKi0trXOfzz//XOvXr5fdbtemTZs0e/ZsLV68WM8999w1XycrK0tt27atvoWFhbn1OAAAQNNi+QXFDeFwONSpUyetWLFCMTExGjNmjGbOnKnc3Nxr7pORkaELFy5U30pKSjw4MQAA8DTLrrkJDAyUt7e3ysrKaqyXlZUpODi4zn06d+6sFi1ayNvbu3qte/fuKi0tVVVVlXx9fWvt4+fnJz8/P/cODwAAmizLztz4+voqJiZG+fn51WsOh0P5+fmKj4+vc5+BAwfqxIkTcjgc1WvHjx9X586d6wwbAADQ/Fj6tlR6erpWrlypV199VUeOHNHjjz+uioqK6k9PjRs3ThkZGdXbP/744/r666+Vlpam48eP67333tOCBQuUkpJi1SEAAIAmxtKPgo8ZM0Znz57VnDlzVFpaqr59+2rz5s3VFxkXFxfLy+v7/goLC9OWLVs0depURUdHKzQ0VGlpaZo2bZpVhwAAAJoYS+NGklJTU5WamlrnYwUFBbXW4uPj9Ze//KWRpwIAADerm+rTUgAAAD+EuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRXIqb7du3u3sOAAAAt3Apbh544AF17dpVzz33nEpKStw9EwAAgMtcipuTJ08qNTVV69evV5cuXZSYmKh169apqqrK3fMBAAA0iEtxExgYqKlTp6qoqEgff/yx7rzzTk2aNEkhISGaPHmyDhw44O45AQAA6uWGLyi+++67lZGRodTUVF26dEl5eXmKiYnR4MGD9be//c0dMwIAANSby3Fz5coVrV+/XiNGjFBERIS2bNmipUuXqqysTCdOnFBERIRGjx7tzlkBAAB+kI8rOz3xxBN644035HQ69cgjj2jRokXq1atX9eOtWrXS888/r5CQELcNCgAAUB8uxc3hw4f1u9/9Tg8++KD8/Pzq3CYwMJCPjAMAAI9zKW7y8/N/+Il9fDR06FBXnh4AAMBlLl1zk5WVpby8vFrreXl5Wrhw4Q0PBQAA4CqX4uall15SVFRUrfWePXsqNzf3hocCAABwlUtxU1paqs6dO9da79ixo06fPn3DQwEAALjKpbgJCwvTRx99VGv9o48+4hNSAADAUi5dUDxx4kRNmTJFV65c0bBhwyR9e5Hx008/rd/85jduHRAAAKAhXIqbp556Sv/7v/+rSZMmVf+elL+/v6ZNm6aMjAy3DggAANAQLsWNzWbTwoULNXv2bB05ckQBAQHq1q3bNb/zBgAAwFNcipvvtG7dWvfcc4+7ZgEAALhhLsfN3r17tW7dOhUXF1e/NfWdt95664YHAwAAcIVLn5Zas2aNBgwYoCNHjmjDhg26cuWK/va3v+mDDz5Q27Zt3T0jAABAvbkUNwsWLNALL7ygd955R76+vnrxxRd19OhR/fznP1d4eLi7ZwQAAKg3l+Lms88+08iRIyVJvr6+qqiokM1m09SpU7VixQq3DggAANAQLsVN+/btdfHiRUlSaGioDh06JEk6f/68Ll++7L7pAAAAGsilC4qHDBmirVu3qnfv3ho9erTS0tL0wQcfaOvWrbr33nvdPSMAAEC9uRQ3S5cu1TfffCNJmjlzplq0aKFdu3bpoYce0qxZs9w6IAAAQEM0OG6uXr2qd999V4mJiZIkLy8vTZ8+3e2DAQAAuKLB19z4+Pjoscceqz5zAwAA0JS4dEFx//79VVRU5OZRAAAAbpxL19xMmjRJ6enpKikpUUxMjFq1alXj8ejoaLcMBwAA0FAuxc0vfvELSdLkyZOr12w2m5xOp2w2m+x2u3umAwAAaCCX4uaLL75w9xwAAABu4VLcREREuHsOAAAAt3Apbv7whz9c9/Fx48a5NAwAAMCNcilu0tLSaty/cuWKLl++LF9fX7Vs2ZK4AQAAlnHpo+B///vfa9wuXbqkY8eOadCgQXrjjTfcPSMAAEC9uRQ3denWrZuys7NrndUBAADwJLfFjfTttxefOnXKnU8JAADQIC5dc/P222/XuO90OnX69GktXbpUAwcOdMtgAAAArnApbkaNGlXjvs1mU8eOHTVs2DAtXrzYHXMBAAC4xKW4cTgc7p4DAADALdx6zQ0AAIDVXIqbhx56SAsXLqy1vmjRIo0ePfqGhwIAAHCVS3Gzc+dOjRgxotb68OHDtXPnzhseCgAAwFUuxc2lS5fk6+tba71FixYqLy+/4aEAAABc5VLc9O7dW2vXrq21vmbNGvXo0eOGhwIAAHCVS5+Wmj17th588EF99tlnGjZsmCQpPz9fb7zxhv70pz+5dUAAAICGcClukpKStHHjRi1YsEDr169XQECAoqOjtW3bNg0dOtTdMwIAANSbS3EjSSNHjtTIkSPdOQsAAMANc+mamz179ujjjz+utf7xxx9r7969NzwUAACAq1yKm5SUFJWUlNRaP3nypFJSUm54KAAAAFe5FDeHDx/W3XffXWu9X79+Onz48A0PBQAA4CqX4sbPz09lZWW11k+fPi0fH5cv4wEAALhhLsXN/fffr4yMDF24cKF67fz585oxY4buu+8+tw0HAADQUC6dZnn++ec1ZMgQRUREqF+/fpKkoqIiBQUF6Y9//KNbBwQAAGgIl+ImNDRUf/3rX/X666/rwIEDCggIUHJyssaOHasWLVq4e0YAAIB6c/kCmVatWmnQoEEKDw9XVVWVJOn999+XJP3kJz9xz3QAAAAN5NI1N59//rn69OmjXr16aeTIkRo1apT+9V//tfrWUMuWLVNkZKT8/f0VFxen3bt312u/NWvWyGazadSoUQ1+TQAAYCaX4iYtLU233367zpw5o5YtW+rQoUPasWOHYmNjVVBQ0KDnWrt2rdLT05WZman9+/erT58+SkxM1JkzZ66735dffqknn3xSgwcPduUQAACAoVyKm8LCQs2bN0+BgYHy8vKSt7e3Bg0apKysLE2ePLlBz5WTk6OJEycqOTlZPXr0UG5urlq2bKm8vLxr7mO32/Xwww/rmWeeUZcuXVw5BAAAYCiX4sZut6tNmzaSpMDAQJ06dUqSFBERoWPHjtX7eaqqqrRv3z4lJCR8P5CXlxISElRYWHjN/ebNm6dOnTrp0UcfdWV8AABgMJcuKO7Vq5cOHDig22+/XXFxcVq0aJF8fX21YsWKBp1JOXfunOx2u4KCgmqsBwUF6ejRo3Xu8+GHH+rll19WUVFRvV6jsrJSlZWV1ffLy8vrPR8AALj5uHTmZtasWXI4HJK+PYvyxRdfaPDgwdq0aZN++9vfunXAf3bx4kU98sgjWrlypQIDA+u1T1ZWltq2bVt9CwsLa7T5AACA9Vw6c5OYmFj9v++44w4dPXpUX3/9tdq3by+bzVbv5wkMDJS3t3etn3IoKytTcHBwre0/++wzffnll0pKSqpe+y6yfHx8dOzYMXXt2rXGPhkZGUpPT6++X15eTuAAAGAwt/0QVIcOHRq8j6+vr2JiYpSfn1/9cW6Hw6H8/HylpqbW2j4qKkoHDx6ssTZr1ixdvHhRL774Yp3R4ufnJz8/vwbPBgAAbk6W/8plenq6xo8fr9jYWPXv319LlixRRUWFkpOTJUnjxo1TaGiosrKy5O/vr169etXYv127dpJUax0AADRPlsfNmDFjdPbsWc2ZM0elpaXq27evNm/eXH2RcXFxsby8XLo0CAAANEOWx40kpaam1vk2lKQf/FLAVatWuX8gAABw0+KUCAAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjNIm4WbZsmSIjI+Xv76+4uDjt3r37mtuuXLlSgwcPVvv27dW+fXslJCRcd3sAANC8WB43a9euVXp6ujIzM7V//3716dNHiYmJOnPmTJ3bFxQUaOzYsdq+fbsKCwsVFham+++/XydPnvTw5AAAoCmyPG5ycnI0ceJEJScnq0ePHsrNzVXLli2Vl5dX5/avv/66Jk2apL59+yoqKkr/+Z//KYfDofz8fA9PDgAAmiJL46aqqkr79u1TQkJC9ZqXl5cSEhJUWFhYr+e4fPmyrly5og4dOtT5eGVlpcrLy2vcAACAuSyNm3PnzslutysoKKjGelBQkEpLS+v1HNOmTVNISEiNQPpnWVlZatu2bfUtLCzshucGAABNl+VvS92I7OxsrVmzRhs2bJC/v3+d22RkZOjChQvVt5KSEg9PCQAAPMnHyhcPDAyUt7e3ysrKaqyXlZUpODj4uvs+//zzys7O1rZt2xQdHX3N7fz8/OTn5+eWeQEAQNNn6ZkbX19fxcTE1LgY+LuLg+Pj46+536JFi/Tss89q8+bNio2N9cSoAADgJmHpmRtJSk9P1/jx4xUbG6v+/ftryZIlqqioUHJysiRp3LhxCg0NVVZWliRp4cKFmjNnjlavXq3IyMjqa3Nat26t1q1bW3YcAACgabA8bsaMGaOzZ89qzpw5Ki0tVd++fbV58+bqi4yLi4vl5fX9Cably5erqqpKP/vZz2o8T2ZmpubOnevJ0QEAQBNkedxIUmpqqlJTU+t8rKCgoMb9L7/8svEHAgAAN62b+tNSAAAA/xdxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACMQtwAAACjEDcAAMAoxA0AADAKcQMAAIxC3AAAAKMQNwAAwCjEDQAAMApxAwAAjELcAAAAoxA3AADAKMQNAAAwCnEDAACM0iTiZtmyZYqMjJS/v7/i4uK0e/fu627/pz/9SVFRUfL391fv3r21adMmD00KAACaOsvjZu3atUpPT1dmZqb279+vPn36KDExUWfOnKlz+127dmns2LF69NFH9cknn2jUqFEaNWqUDh065OHJAQBAU2R53OTk5GjixIlKTk5Wjx49lJubq5YtWyovL6/O7V988UU98MADeuqpp9S9e3c9++yzuvvuu7V06VIPTw4AAJoiS+OmqqpK+/btU0JCQvWal5eXEhISVFhYWOc+hYWFNbaXpMTExGtuDwAAmhcfK1/83LlzstvtCgoKqrEeFBSko0eP1rlPaWlpnduXlpbWuX1lZaUqKyur71+4cEGSVF5eXmtbe+U/GjR/U1XXsV3PxW/sjTSJZzX0uK/+42ojTeJZDT3uiqvN87j/UXm5kSbxrIYe9zdXrjTSJJ7V0OO+9E1FI03iWQ097n/+793NrK7j/m7N6XT+4P6Wxo0nZGVl6Zlnnqm1HhYWZsE0ntH2d49ZPYI1stpaPYEl2k5rnsetts3zuJ9eZvUE1nhuXfP889ZzVg9gjezs7Gs+dvHiRbX9gX/+LY2bwMBAeXt7q6ysrMZ6WVmZgoOD69wnODi4QdtnZGQoPT29+r7D4dDXX3+tW2+9VTab7QaPoGHKy8sVFhamkpIS3XLLLR59bStx3Bx3c8Bxc9zNgZXH7XQ6dfHiRYWEhPzgtpbGja+vr2JiYpSfn69Ro0ZJ+jY+8vPzlZqaWuc+8fHxys/P15QpU6rXtm7dqvj4+Dq39/Pzk5+fX421du3auWN8l91yyy3N6h+G73DczQvH3bxw3M2LVcf9Q2dsvmP521Lp6ekaP368YmNj1b9/fy1ZskQVFRVKTk6WJI0bN06hoaHKysqSJKWlpWno0KFavHixRo4cqTVr1mjv3r1asWKFlYcBAACaCMvjZsyYMTp79qzmzJmj0tJS9e3bV5s3b66+aLi4uFheXt9/qGvAgAFavXq1Zs2apRkzZqhbt27auHGjevXqZdUhAACAJsTyuJGk1NTUa74NVVBQUGtt9OjRGj16dCNP5X5+fn7KzMys9TaZ6Thujrs54Lg57ubgZjlum7M+n6kCAAC4SVj+DcUAAADuRNwAAACjEDcAAMAoxI0H7Ny5U0lJSQoJCZHNZtPGjRutHskjsrKydM8996hNmzbq1KmTRo0apWPHjlk9VqNbvny5oqOjq78HIj4+Xu+//77VY3lcdna2bDZbje+kMtHcuXNls9lq3KKioqweyyNOnjypX/3qV7r11lsVEBCg3r17a+/evVaP1agiIyNr/XnbbDalpKRYPVqjstvtmj17tm6//XYFBASoa9euevbZZ+v1UwhWaBKfljJdRUWF+vTpowkTJujBBx+0ehyP2bFjh1JSUnTPPffo6tWrmjFjhu6//34dPnxYrVq1snq8RnPbbbcpOztb3bp1k9Pp1Kuvvqqf/vSn+uSTT9SzZ0+rx/OIPXv26KWXXlJ0dLTVo3hEz549tW3btur7Pj7m/6v173//uwYOHKgf//jHev/999WxY0d9+umnat++vdWjNao9e/bIbv/+9/gOHTqk++6776b8BG9DLFy4UMuXL9err76qnj17au/evUpOTlbbtm01efJkq8erxfx/ApuA4cOHa/jw4VaP4XGbN2+ucX/VqlXq1KmT9u3bpyFDhlg0VeNLSkqqcX/+/Plavny5/vKXvzSLuLl06ZIefvhhrVy5Us891zx+GMfHx+eaPwFjqoULFyosLEyvvPJK9drtt99u4USe0bFjxxr3s7Oz1bVrVw0dOtSiiTxj165d+ulPf6qRI0dK+vYM1htvvKHdu3dbPFndeFsKHvPdL7J36NDB4kk8x263a82aNaqoqLjmT4SYJiUlRSNHjlRCQoLVo3jMp59+qpCQEHXp0kUPP/ywiouLrR6p0b399tuKjY3V6NGj1alTJ/Xr108rV660eiyPqqqq0muvvaYJEyZ4/LcKPW3AgAHKz8/X8ePHJUkHDhzQhx9+2GT/4s6ZG3iEw+HQlClTNHDgwGbxbdIHDx5UfHy8vvnmG7Vu3VobNmxQjx49rB6r0a1Zs0b79+/Xnj17rB7FY+Li4rRq1SrdddddOn36tJ555hkNHjxYhw4dUps2bawer9F8/vnnWr58udLT0zVjxgzt2bNHkydPlq+vr8aPH2/1eB6xceNGnT9/Xr/+9a+tHqXRTZ8+XeXl5YqKipK3t7fsdrvmz5+vhx9+2OrR6kTcwCNSUlJ06NAhffjhh1aP4hF33XWXioqKdOHCBa1fv17jx4/Xjh07jA6ckpISpaWlaevWrfL397d6HI/557+5RkdHKy4uThEREVq3bp0effRRCydrXA6HQ7GxsVqwYIEkqV+/fjp06JByc3ObTdy8/PLLGj58eL1+pfpmt27dOr3++utavXq1evbsqaKiIk2ZMkUhISFN8s+buEGjS01N1bvvvqudO3fqtttus3ocj/D19dUdd9whSYqJidGePXv04osv6qWXXrJ4ssazb98+nTlzRnfffXf1mt1u186dO7V06VJVVlbK29vbwgk9o127drrzzjt14sQJq0dpVJ07d64V6927d9ebb75p0USe9dVXX2nbtm166623rB7FI5566ilNnz5dv/jFLyRJvXv31ldffaWsrCziBs2L0+nUE088oQ0bNqigoKBZXGx4LQ6HQ5WVlVaP0ajuvfdeHTx4sMZacnKyoqKiNG3atGYRNtK3F1R/9tlneuSRR6wepVENHDiw1lc7HD9+XBERERZN5FmvvPKKOnXqVH2BrekuX75c40esJcnb21sOh8Oiia6PuPGAS5cu1fhb3BdffKGioiJ16NBB4eHhFk7WuFJSUrR69Wr913/9l9q0aaPS0lJJUtu2bRUQEGDxdI0nIyNDw4cPV3h4uC5evKjVq1eroKBAW7ZssXq0RtWmTZta11O1atVKt956q9HXWT355JNKSkpSRESETp06pczMTHl7e2vs2LFWj9aopk6dqgEDBmjBggX6+c9/rt27d2vFihVasWKF1aM1OofDoVdeeUXjx49vFh/7l779FOj8+fMVHh6unj176pNPPlFOTo4mTJhg9Wh1c6LRbd++3Smp1m38+PFWj9ao6jpmSc5XXnnF6tEa1YQJE5wRERFOX19fZ8eOHZ333nuv889//rPVY1li6NChzrS0NKvHaFRjxoxxdu7c2enr6+sMDQ11jhkzxnnixAmrx/KId955x9mrVy+nn5+fMyoqyrlixQqrR/KILVu2OCU5jx07ZvUoHlNeXu5MS0tzhoeHO/39/Z1dunRxzpw501lZWWn1aHXiV8EBAIBR+J4bAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwA3jVWrVqldu3aN/jpffvmlbDabioqKGv21ALgfcQMAAIxC3AAAAKMQNwDc7kc/+pEmT56sp59+Wh06dFBwcLDmzp1br33Pnz+v//iP/1BQUJD8/f3Vq1cvvfvuuzW22bJli7p3767WrVvrgQce0OnTp2u89pQpU2psP2rUKP3617+uvh8ZGakFCxZowoQJatOmjcLDw6/7a9Z2u10TJkxQVFSUiouL5XQ6NXfuXIWHh8vPz08hISGaPHlyvY4PQOMjbgA0ildffVWtWrXSxx9/rEWLFmnevHnaunXrdfdxOBwaPny4PvroI7322ms6fPiwsrOz5e3tXb3N5cuX9fzzz+uPf/yjdu7cqeLiYj355JMNnm/x4sWKjY3VJ598okmTJunxxx/XsWPHam1XWVmp0aNHq6ioSP/93/+t8PBwvfnmm3rhhRf00ksv6dNPP9XGjRvVu3fvBs8AoHH4WD0AADNFR0crMzNTktStWzctXbpU+fn5uu+++665z7Zt27R7924dOXJEd955pySpS5cuNba5cuWKcnNz1bVrV0lSamqq5s2b1+D5RowYoUmTJkmSpk2bphdeeEHbt2/XXXfdVb3NpUuXNHLkSFVWVmr79u1q27atJKm4uFjBwcFKSEhQixYtFB4erv79+zd4BgCNgzM3ABpFdHR0jfudO3fWmTNnrrtPUVGRbrvttuqwqUvLli2rw6a+z/tD89lsNgUHB9d6nrFjx6qiokJ//vOfq8NGkkaPHq1//OMf6tKliyZOnKgNGzbo6tWrDZ4BQOMgbgA0ihYtWtS4b7PZ5HA4rrtPQECAS8/rdDqr73t5edW4L317tseV+UaMGKG//vWvKiwsrLEeFhamY8eO6fe//70CAgI0adIkDRkypM7XAeB5xA2AJiM6Olr/8z//o+PHj7v8HB07dqxxgbHdbtehQ4dceq7HH39c2dnZ+slPfqIdO3bUeCwgIEBJSUn67W9/q4KCAhUWFurgwYMuzw3AfbjmBkCTMXToUA0ZMkQPPfSQcnJydMcdd+jo0aOy2Wx64IEH6vUcw4YNU3p6ut577z117dpVOTk5On/+vMszPfHEE7Lb7fqXf/kXvf/++xo0aJBWrVolu92uuLg4tWzZUq+99poCAgIUERHh8usAcB/iBkCT8uabb+rJJ5+svt7ljjvuUHZ2dr33nzBhgg4cOKBx48bJx8dHU6dO1Y9//OMbmmnKlClyOBwaMWKENm/erHbt2ik7O1vp6emy2+3q3bu33nnnHd1666039DoA3MPm/L9vTgMAANzEuOYGAAAYhbgB4DGvv/66WrduXeetZ8+eVo8HwBC8LQXAYy5evKiysrI6H2vRogUX5AJwC+IGAAAYhbelAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEb5/4vUDhrIqONBAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "sns.barplot(x='n_chunks', y='accuracy', data=metrics_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "6611cc71-398a-4a9f-9c7d-c80f5cb1b88c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:24:38.212040Z",
     "iopub.status.busy": "2024-10-14T03:24:38.210081Z",
     "iopub.status.idle": "2024-10-14T03:24:39.519978Z",
     "shell.execute_reply": "2024-10-14T03:24:39.518704Z"
    },
    "papermill": {
     "duration": 1.419576,
     "end_time": "2024-10-14T03:24:39.523067",
     "exception": false,
     "start_time": "2024-10-14T03:24:38.103491",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "for n_chunks, pred_df in pred_dfs.items():\n",
    "    pred_df.to_excel(os.path.join(expr_dir, f'{expr_version}_{n_chunks}_prediction.xlsx'), index=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f1e7433-4bcb-4a6d-bab9-907e9c096103",
   "metadata": {
    "papermill": {
     "duration": 0.115257,
     "end_time": "2024-10-14T03:24:39.733476",
     "exception": false,
     "start_time": "2024-10-14T03:24:39.618219",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 结果分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "97020083-dd03-4068-a945-dcd16435cb78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:39:29.739378Z",
     "iopub.status.busy": "2024-10-14T03:39:29.739178Z",
     "iopub.status.idle": "2024-10-14T03:39:29.946101Z",
     "shell.execute_reply": "2024-10-14T03:39:29.945597Z",
     "shell.execute_reply.started": "2024-10-14T03:39:29.739360Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5f862347-7c56-47cd-92e1-14e073eef2ac",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:39:52.564725Z",
     "iopub.status.busy": "2024-10-14T03:39:52.564456Z",
     "iopub.status.idle": "2024-10-14T03:39:52.567948Z",
     "shell.execute_reply": "2024-10-14T03:39:52.567405Z",
     "shell.execute_reply.started": "2024-10-14T03:39:52.564707Z"
    }
   },
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "expr_version = 'retrieval_v12_rerank_n_chunks'\n",
    "\n",
    "preprocess_output_dir = os.path.join(os.path.pardir, 'outputs', 'v1_20240713')\n",
    "expr_dir = os.path.join(os.path.pardir, 'experiments', expr_version)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "574cbdc1-a950-4d59-b488-515a5d90412b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:40:55.076244Z",
     "iopub.status.busy": "2024-10-14T03:40:55.075555Z",
     "iopub.status.idle": "2024-10-14T03:40:55.123248Z",
     "shell.execute_reply": "2024-10-14T03:40:55.122689Z",
     "shell.execute_reply.started": "2024-10-14T03:40:55.076212Z"
    }
   },
   "outputs": [],
   "source": [
    "pred_df = pd.read_excel(os.path.join(expr_dir, f'{expr_version}_{6}_prediction.xlsx'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7ddf160a-6e9e-4643-a4b4-ac6436043dc0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:40:55.277338Z",
     "iopub.status.busy": "2024-10-14T03:40:55.276558Z",
     "iopub.status.idle": "2024-10-14T03:40:55.308957Z",
     "shell.execute_reply": "2024-10-14T03:40:55.306758Z",
     "shell.execute_reply.started": "2024-10-14T03:40:55.277270Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>ref_answer</th>\n",
       "      <th>gen_answer</th>\n",
       "      <th>chunks</th>\n",
       "      <th>raw_score</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>e73a0c9d-d42b-4350-a4c3-b38bf67c68a5</td>\n",
       "      <td>报告的发布机构是什么？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>中国银行研究院</td>\n",
       "      <td>报告的发布机构是中国银行研究院。</td>\n",
       "      <td>[Document(metadata={'page': 27, 'source': 'dat...</td>\n",
       "      <td>是</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>e73a0c9d-d42b-4350-a4c3-b38bf67c68a5</td>\n",
       "      <td>报告的发布日期是什么时候？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2023年12月12日</td>\n",
       "      <td>报告的发布日期是2023年12月12日。</td>\n",
       "      <td>[Document(metadata={'page': 0, 'source': 'data...</td>\n",
       "      <td>是</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>e73a0c9d-d42b-4350-a4c3-b38bf67c68a5</td>\n",
       "      <td>2023年全球经济增长有什么特点？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>全球经济增长动力持续回落，各国复苏分化，发达经济体增速放缓，新兴经济体表现稳定。</td>\n",
       "      <td>2023年全球经济增长动力持续减弱，各国复苏分化。发达经济体增速放缓，新兴经济体整体表现稳定...</td>\n",
       "      <td>[Document(metadata={'page': 2, 'source': 'data...</td>\n",
       "      <td>是</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>e73a0c9d-d42b-4350-a4c3-b38bf67c68a5</td>\n",
       "      <td>全球贸易增长情况如何？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>全球贸易增长乏力。</td>\n",
       "      <td>全球贸易增长乏力，各国生产景气度逐渐回落，内需对经济的拉动作用减弱。</td>\n",
       "      <td>[Document(metadata={'page': 0, 'source': 'data...</td>\n",
       "      <td>是</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>e73a0c9d-d42b-4350-a4c3-b38bf67c68a5</td>\n",
       "      <td>展望2024年，全球经济复苏的预期如何？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>全球经济复苏预计将依旧疲软。</td>\n",
       "      <td>预计2024年全球经济复苏将依旧疲软，主要经济体增长态势和货币政策将进一步分化。欧美央行大概...</td>\n",
       "      <td>[Document(metadata={'page': 2, 'source': 'data...</td>\n",
       "      <td>是</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                   uuid              question   qa_type  \\\n",
       "0  e73a0c9d-d42b-4350-a4c3-b38bf67c68a5           报告的发布机构是什么？  detailed   \n",
       "1  e73a0c9d-d42b-4350-a4c3-b38bf67c68a5         报告的发布日期是什么时候？  detailed   \n",
       "2  e73a0c9d-d42b-4350-a4c3-b38bf67c68a5     2023年全球经济增长有什么特点？  detailed   \n",
       "3  e73a0c9d-d42b-4350-a4c3-b38bf67c68a5           全球贸易增长情况如何？  detailed   \n",
       "4  e73a0c9d-d42b-4350-a4c3-b38bf67c68a5  展望2024年，全球经济复苏的预期如何？  detailed   \n",
       "\n",
       "                                 ref_answer  \\\n",
       "0                                   中国银行研究院   \n",
       "1                               2023年12月12日   \n",
       "2  全球经济增长动力持续回落，各国复苏分化，发达经济体增速放缓，新兴经济体表现稳定。   \n",
       "3                                 全球贸易增长乏力。   \n",
       "4                            全球经济复苏预计将依旧疲软。   \n",
       "\n",
       "                                          gen_answer  \\\n",
       "0                                   报告的发布机构是中国银行研究院。   \n",
       "1                               报告的发布日期是2023年12月12日。   \n",
       "2  2023年全球经济增长动力持续减弱，各国复苏分化。发达经济体增速放缓，新兴经济体整体表现稳定...   \n",
       "3                 全球贸易增长乏力，各国生产景气度逐渐回落，内需对经济的拉动作用减弱。   \n",
       "4  预计2024年全球经济复苏将依旧疲软，主要经济体增长态势和货币政策将进一步分化。欧美央行大概...   \n",
       "\n",
       "                                              chunks raw_score  score  \n",
       "0  [Document(metadata={'page': 27, 'source': 'dat...         是      1  \n",
       "1  [Document(metadata={'page': 0, 'source': 'data...         是      1  \n",
       "2  [Document(metadata={'page': 2, 'source': 'data...         是      1  \n",
       "3  [Document(metadata={'page': 0, 'source': 'data...         是      1  \n",
       "4  [Document(metadata={'page': 2, 'source': 'data...         是      1  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "af6b79b2-9060-4ec5-892a-ca73bedfa93f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:40:58.749876Z",
     "iopub.status.busy": "2024-10-14T03:40:58.749710Z",
     "iopub.status.idle": "2024-10-14T03:40:58.756461Z",
     "shell.execute_reply": "2024-10-14T03:40:58.756149Z",
     "shell.execute_reply.started": "2024-10-14T03:40:58.749862Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>ref_answer</th>\n",
       "      <th>gen_answer</th>\n",
       "      <th>chunks</th>\n",
       "      <th>raw_score</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>41d95288-441d-4c02-948a-6a3f0f4ef3ba</td>\n",
       "      <td>2023年美元指数的整体走势如何？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>高位震荡后走弱</td>\n",
       "      <td>2023年以来，美元指数始终保持高位，在100-105区间波动，7月初开始震荡走高，之后逐渐...</td>\n",
       "      <td>[Document(metadata={'page': 30, 'source': 'dat...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1f406690-b478-43cd-96f8-cd77924e300e</td>\n",
       "      <td>全球经济复苏呈现什么特点？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>全球经济复苏不均衡，各国差异大。发达经济体增速放缓，新兴经济体增速基本持平但略有下降。</td>\n",
       "      <td>全球经济复苏呈现疲软和分化的特点。主要表现为：\\n\\n1. **全球经济增长动力持续回落**...</td>\n",
       "      <td>[Document(metadata={'page': 2, 'source': 'data...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>4bd96918-ce66-4762-a725-8a7e4b543dbe</td>\n",
       "      <td>与2022年底相比，2023年二季度美国非金融企业部门负债率变化了多少个百分点？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>下降了2.4个百分点</td>\n",
       "      <td>2.4个</td>\n",
       "      <td>[Document(metadata={'page': 6, 'source': 'data...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>0a58414c-bf99-493b-b13b-b83c96af2687</td>\n",
       "      <td>世贸组织对2023年全球货物贸易增速的预测值是多少百分点?</td>\n",
       "      <td>detailed</td>\n",
       "      <td>0.9个百分点</td>\n",
       "      <td>世贸组织将2023年全球货物贸易增速预测值下调至0.8%，较之前的预测值减少了0.9个百分点。</td>\n",
       "      <td>[Document(metadata={'page': 8, 'source': 'data...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>1c1d5705-f666-4447-8d61-6c184710e67f</td>\n",
       "      <td>根据英国预算责任办公室的说法，英国民众生活标准何时会开始恢复？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>2024年上半年以后，经济活动有望逐步复苏</td>\n",
       "      <td>预计英国民众以可支配收入衡量的生活标准将在下一财年较疫情前水平低3.5%，但未来经济活动逐步...</td>\n",
       "      <td>[Document(metadata={'page': 15, 'source': 'dat...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>9b9d36c0-27bd-41e9-9dc4-5ae53879a016</td>\n",
       "      <td>2023年，欧元区M3、M2和M1的同比增速情况是否提及？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>提及了，但具体数据未给出</td>\n",
       "      <td>信息片段中未直接提及2023年欧元区M3、M2和M1的具体同比增速情况。提到的是“2023年...</td>\n",
       "      <td>[Document(metadata={'page': 28, 'source': 'dat...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>67</th>\n",
       "      <td>50f4fb19-9c21-4f0c-babb-2ddb1c33a6d6</td>\n",
       "      <td>公司债的发行规模变化如何？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>上升了2.5%</td>\n",
       "      <td>2023年，美国债券市场的融资规模为71414亿美元，同比下降8.8%。其中，公司债（2.5...</td>\n",
       "      <td>[Document(metadata={'page': 35, 'source': 'dat...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76</th>\n",
       "      <td>fd7e1d60-e683-4de9-92b3-59fafe07f643</td>\n",
       "      <td>为什么海湾六国需要进行经济转型?</td>\n",
       "      <td>detailed</td>\n",
       "      <td>过度依赖传统能源限制了工业发展和科技创新动力</td>\n",
       "      <td>海湾六国需要进行经济转型的原因包括：\\n\\n1. **国际形势变化**：全球能源危机和气候变...</td>\n",
       "      <td>[Document(metadata={'page': 42, 'source': 'dat...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77</th>\n",
       "      <td>c6fc6079-0daf-4d6a-bd6e-7d9820012425</td>\n",
       "      <td>沙特的全面绿色倡议包含哪些项目？</td>\n",
       "      <td>detailed</td>\n",
       "      <td>13个可再生能源项目</td>\n",
       "      <td>沙特的全面绿色倡议包括以下关键项目：\\n\\n1. **NEOM（新未来城）**：发展绿氢和绿...</td>\n",
       "      <td>[Document(metadata={'page': 43, 'source': 'dat...</td>\n",
       "      <td>否</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                    uuid  \\\n",
       "10  41d95288-441d-4c02-948a-6a3f0f4ef3ba   \n",
       "11  1f406690-b478-43cd-96f8-cd77924e300e   \n",
       "24  4bd96918-ce66-4762-a725-8a7e4b543dbe   \n",
       "30  0a58414c-bf99-493b-b13b-b83c96af2687   \n",
       "40  1c1d5705-f666-4447-8d61-6c184710e67f   \n",
       "59  9b9d36c0-27bd-41e9-9dc4-5ae53879a016   \n",
       "67  50f4fb19-9c21-4f0c-babb-2ddb1c33a6d6   \n",
       "76  fd7e1d60-e683-4de9-92b3-59fafe07f643   \n",
       "77  c6fc6079-0daf-4d6a-bd6e-7d9820012425   \n",
       "\n",
       "                                    question   qa_type  \\\n",
       "10                         2023年美元指数的整体走势如何？  detailed   \n",
       "11                             全球经济复苏呈现什么特点？  detailed   \n",
       "24  与2022年底相比，2023年二季度美国非金融企业部门负债率变化了多少个百分点？  detailed   \n",
       "30             世贸组织对2023年全球货物贸易增速的预测值是多少百分点?  detailed   \n",
       "40           根据英国预算责任办公室的说法，英国民众生活标准何时会开始恢复？  detailed   \n",
       "59             2023年，欧元区M3、M2和M1的同比增速情况是否提及？  detailed   \n",
       "67                             公司债的发行规模变化如何？  detailed   \n",
       "76                          为什么海湾六国需要进行经济转型?  detailed   \n",
       "77                          沙特的全面绿色倡议包含哪些项目？  detailed   \n",
       "\n",
       "                                     ref_answer  \\\n",
       "10                                      高位震荡后走弱   \n",
       "11  全球经济复苏不均衡，各国差异大。发达经济体增速放缓，新兴经济体增速基本持平但略有下降。   \n",
       "24                                   下降了2.4个百分点   \n",
       "30                                      0.9个百分点   \n",
       "40                        2024年上半年以后，经济活动有望逐步复苏   \n",
       "59                                 提及了，但具体数据未给出   \n",
       "67                                      上升了2.5%   \n",
       "76                       过度依赖传统能源限制了工业发展和科技创新动力   \n",
       "77                                   13个可再生能源项目   \n",
       "\n",
       "                                           gen_answer  \\\n",
       "10  2023年以来，美元指数始终保持高位，在100-105区间波动，7月初开始震荡走高，之后逐渐...   \n",
       "11  全球经济复苏呈现疲软和分化的特点。主要表现为：\\n\\n1. **全球经济增长动力持续回落**...   \n",
       "24                                               2.4个   \n",
       "30    世贸组织将2023年全球货物贸易增速预测值下调至0.8%，较之前的预测值减少了0.9个百分点。   \n",
       "40  预计英国民众以可支配收入衡量的生活标准将在下一财年较疫情前水平低3.5%，但未来经济活动逐步...   \n",
       "59  信息片段中未直接提及2023年欧元区M3、M2和M1的具体同比增速情况。提到的是“2023年...   \n",
       "67  2023年，美国债券市场的融资规模为71414亿美元，同比下降8.8%。其中，公司债（2.5...   \n",
       "76  海湾六国需要进行经济转型的原因包括：\\n\\n1. **国际形势变化**：全球能源危机和气候变...   \n",
       "77  沙特的全面绿色倡议包括以下关键项目：\\n\\n1. **NEOM（新未来城）**：发展绿氢和绿...   \n",
       "\n",
       "                                               chunks raw_score  score  \n",
       "10  [Document(metadata={'page': 30, 'source': 'dat...         否      0  \n",
       "11  [Document(metadata={'page': 2, 'source': 'data...         否      0  \n",
       "24  [Document(metadata={'page': 6, 'source': 'data...         否      0  \n",
       "30  [Document(metadata={'page': 8, 'source': 'data...         否      0  \n",
       "40  [Document(metadata={'page': 15, 'source': 'dat...         否      0  \n",
       "59  [Document(metadata={'page': 28, 'source': 'dat...         否      0  \n",
       "67  [Document(metadata={'page': 35, 'source': 'dat...         否      0  \n",
       "76  [Document(metadata={'page': 42, 'source': 'dat...         否      0  \n",
       "77  [Document(metadata={'page': 43, 'source': 'dat...         否      0  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred_df[pred_df['score'] == 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "25d19daa-ebfc-4f57-8f33-b471ddf7a07c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:41:48.708154Z",
     "iopub.status.busy": "2024-10-14T03:41:48.707372Z",
     "iopub.status.idle": "2024-10-14T03:41:48.739163Z",
     "shell.execute_reply": "2024-10-14T03:41:48.736735Z",
     "shell.execute_reply.started": "2024-10-14T03:41:48.708084Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uuid</th>\n",
       "      <th>question</th>\n",
       "      <th>qa_type</th>\n",
       "      <th>ref_answer</th>\n",
       "      <th>gen_answer</th>\n",
       "      <th>chunks</th>\n",
       "      <th>raw_score</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>d4683862-fed6-4867-a255-29db66011c2a</td>\n",
       "      <td>2024年美联储的货币政策预期如何？</td>\n",
       "      <td>large_context</td>\n",
       "      <td>2024年美联储预计将暂停加息，但是利率水平将较长时间维持在高位，预计会维持每月950亿美元...</td>\n",
       "      <td>2024年美联储预计将暂停加息，但利率水平将较长时间维持在高位。美联储将调整资产负债结构，维...</td>\n",
       "      <td>[Document(metadata={'page': 25, 'source': 'dat...</td>\n",
       "      <td>是</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                    uuid            question        qa_type  \\\n",
       "96  d4683862-fed6-4867-a255-29db66011c2a  2024年美联储的货币政策预期如何？  large_context   \n",
       "\n",
       "                                           ref_answer  \\\n",
       "96  2024年美联储预计将暂停加息，但是利率水平将较长时间维持在高位，预计会维持每月950亿美元...   \n",
       "\n",
       "                                           gen_answer  \\\n",
       "96  2024年美联储预计将暂停加息，但利率水平将较长时间维持在高位。美联储将调整资产负债结构，维...   \n",
       "\n",
       "                                               chunks raw_score  score  \n",
       "96  [Document(metadata={'page': 25, 'source': 'dat...         是      1  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred_df[pred_df['question'] == '2024年美联储的货币政策预期如何？']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e04a231b-13a4-41f6-b5a8-d75e3655938c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:43:20.277402Z",
     "iopub.status.busy": "2024-10-14T03:43:20.277236Z",
     "iopub.status.idle": "2024-10-14T03:43:20.279981Z",
     "shell.execute_reply": "2024-10-14T03:43:20.279637Z",
     "shell.execute_reply.started": "2024-10-14T03:43:20.277388Z"
    }
   },
   "outputs": [],
   "source": [
    "def print_case(row):\n",
    "    print(f\"question: {row['question']}\")\n",
    "    print(f\"ref_answer:\")\n",
    "    print(row['ref_answer'])\n",
    "    print()\n",
    "    print('gen_answer:')\n",
    "    print(row['gen_answer'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a6c43607-bcf6-4f00-9253-9125feb2580c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-14T03:47:05.638767Z",
     "iopub.status.busy": "2024-10-14T03:47:05.638579Z",
     "iopub.status.idle": "2024-10-14T03:47:05.642613Z",
     "shell.execute_reply": "2024-10-14T03:47:05.642268Z",
     "shell.execute_reply.started": "2024-10-14T03:47:05.638751Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "question: 2023年美元指数的整体走势如何？\n",
      "ref_answer:\n",
      "高位震荡后走弱\n",
      "\n",
      "gen_answer:\n",
      "2023年以来，美元指数始终保持高位，在100-105区间波动，7月初开始震荡走高，之后逐渐从高位回落。截至11月15日，美元指数为104.4，较年初上涨0.6%。\n",
      "\n",
      "\n",
      "\n",
      "question: 全球经济复苏呈现什么特点？\n",
      "ref_answer:\n",
      "全球经济复苏不均衡，各国差异大。发达经济体增速放缓，新兴经济体增速基本持平但略有下降。\n",
      "\n",
      "gen_answer:\n",
      "全球经济复苏呈现疲软和分化的特点。主要表现为：\n",
      "\n",
      "1. **全球经济增长动力持续回落**，各国复苏存在较大差异，发达经济体增速明显放缓，新兴经济体整体表现稳定但增长承压。\n",
      "\n",
      "2. **需求端下行压力可能大于生产端**，高通胀、高利率、高债务背景下，居民家庭资产负债表状况变差，紧缩性货币政策对需求端的影响逐步显现。\n",
      "\n",
      "3. **各国经济走势将进一步分化**。相较于新兴市场和发展中经济体，发达经济体面临更大的经济增长压力。欧元区和英国的通胀压力较大，美国经济处于下行阶段但“软着陆”概率更大。中国和其他亚太经济体有望逐渐企稳，成为稳定全球经济的重要力量。\n",
      "\n",
      "4. **需求端可能加速回落**，在高通胀、高利率、高债务背景下，支撑2023年经济增长的需求因素面临加速下降的压力。\n",
      "\n",
      "5. **一些稳定因素将显现**，如全球供应链和工业生产逐步恢复正常，宏观政策效应释放等，对经济形成托底作用。\n",
      "\n",
      "\n",
      "\n",
      "question: 与2022年底相比，2023年二季度美国非金融企业部门负债率变化了多少个百分点？\n",
      "ref_answer:\n",
      "下降了2.4个百分点\n",
      "\n",
      "gen_answer:\n",
      "2.4个\n",
      "\n",
      "\n",
      "\n",
      "question: 世贸组织对2023年全球货物贸易增速的预测值是多少百分点?\n",
      "ref_answer:\n",
      "0.9个百分点\n",
      "\n",
      "gen_answer:\n",
      "世贸组织将2023年全球货物贸易增速预测值下调至0.8%，较之前的预测值减少了0.9个百分点。\n",
      "\n",
      "\n",
      "\n",
      "question: 根据英国预算责任办公室的说法，英国民众生活标准何时会开始恢复？\n",
      "ref_answer:\n",
      "2024年上半年以后，经济活动有望逐步复苏\n",
      "\n",
      "gen_answer:\n",
      "预计英国民众以可支配收入衡量的生活标准将在下一财年较疫情前水平低3.5%，但未来经济活动逐步复苏后有望恢复。具体时间文中未明确给出。\n",
      "\n",
      "\n",
      "\n",
      "question: 2023年，欧元区M3、M2和M1的同比增速情况是否提及？\n",
      "ref_answer:\n",
      "提及了，但具体数据未给出\n",
      "\n",
      "gen_answer:\n",
      "信息片段中未直接提及2023年欧元区M3、M2和M1的具体同比增速情况。提到的是“2023年，政策利率不断提高带动相关金融资产价格调整，成为影响跨境资本流动的重要因素。”以及“图16：欧元区广义货币增速及货币市场基金增速（%）”等信息，但没有详细列出M3、M2和M1的具体增速。\n",
      "\n",
      "\n",
      "\n",
      "question: 公司债的发行规模变化如何？\n",
      "ref_answer:\n",
      "上升了2.5%\n",
      "\n",
      "gen_answer:\n",
      "2023年，美国债券市场的融资规模为71414亿美元，同比下降8.8%。其中，公司债（2.5%）和政府机构债券（80.7%）的发行规模呈现上升态势。\n",
      "\n",
      "\n",
      "\n",
      "question: 为什么海湾六国需要进行经济转型?\n",
      "ref_answer:\n",
      "过度依赖传统能源限制了工业发展和科技创新动力\n",
      "\n",
      "gen_answer:\n",
      "海湾六国需要进行经济转型的原因包括：\n",
      "\n",
      "1. **国际形势变化**：全球能源危机和气候变化加速了各国对能源安全的关注，主要经济体推动能源多元化发展，减少了对海湾六国石油的需求。\n",
      "2. **能源结构变革**：新能源的兴起逐步挤占传统能源份额，中东国家面临转向绿色低碳发展的需求。\n",
      "3. **工业和人口增长**：海湾六国的经济和人口增长为工业和制造业扩张提供了空间，推动了内部动力，促使政府寻求多元化发展以稳定经济增长。\n",
      "\n",
      "这些因素共同作用下，海湾六国认识到需要减少对传统能源的依赖，推进新能源转型、增强国家战略自主性，并促进经济多元化发展。\n",
      "\n",
      "\n",
      "\n",
      "question: 沙特的全面绿色倡议包含哪些项目？\n",
      "ref_answer:\n",
      "13个可再生能源项目\n",
      "\n",
      "gen_answer:\n",
      "沙特的全面绿色倡议包括以下关键项目：\n",
      "\n",
      "1. **NEOM（新未来城）**：发展绿氢和绿氨生产，旨在成为世界上最大的公用事业级绿色氢生产设施。\n",
      "2. **可再生能源项目**：计划每年减少约2000万吨碳排放，通过开发太阳能、风能等可再生能源项目实现。\n",
      "\n",
      "这些项目体现了沙特推动能源转型和经济多元化发展的决心。\n",
      "\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for idx, row in pred_df[pred_df['score'] == 0].iterrows():\n",
    "    print_case(row)\n",
    "    print('\\n\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c70a6ccf-2c63-4f7c-b9dd-4a2399b8bc87",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 4431.206914,
   "end_time": "2024-10-14T03:24:41.481556",
   "environment_variables": {},
   "exception": null,
   "input_path": "expr_12_full_proc_n_chunks.ipynb",
   "output_path": "run_expr_12_full_proc_n_chunks.ipynb",
   "parameters": {},
   "start_time": "2024-10-14T02:10:50.274642",
   "version": "2.6.0"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "000b9f0f47124eb9978d58c3fdc5f195": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "008f4cdd466b4f8291b37161a6af7d5e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_15700137fea94ee0bb903d34ce21896d",
       "placeholder": "​",
       "style": "IPY_MODEL_8363150a8ec74bc6bd2fc723957ebd01",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "0308c29b7b6446568a75c93fba850c70": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "0387603da5704bac98b6fcd22d1ab212": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_d6f3eb4810ea4f7c85b2efbbcb9b4a65",
        "IPY_MODEL_ca1ccd56748040319c90b3a3ed2cf6a3",
        "IPY_MODEL_3874c297a7c14349a62ab3694770b850"
       ],
       "layout": "IPY_MODEL_d9302da4429744928a4fcff6fa65ab99",
       "tabbable": null,
       "tooltip": null
      }
     },
     "041cc13ac27c4af3892d36a56c0ae2c0": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "045285f0a0fd4f89a47c8d37dbe21952": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "047469257ce54362b35c3f7cf96fe49b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_74a5c70cb5cf40d2bb39fa9e70990b67",
       "placeholder": "​",
       "style": "IPY_MODEL_4bf16e6248514632aec8420612813e7a",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "07f5c3110f234399b4681f31eea2c014": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "086405b23a1a412db6a57e16fbc614bc": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_730a49df53a9480a87c5497c8dfd4524",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_5e5f367cb7b74385885016a5aef915ff",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "08dfff1b429c426094fb4c7b516e251a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "0c013f91e93b482d9a28ac3f56a17607": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "0e59f8587880483096e479458d01265e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "110c249ec454453696314783796141d9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "11ae7a46a1af4588aadd14394906d280": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_7822b02791414d72978ddf7e7ea86811",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_eb37814df4b44656878e9fd68412171d",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "1288a29e57d14b6599aa0a169a78e8e5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "15681f0b0cc342acb9431ea7af765496": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "15700137fea94ee0bb903d34ce21896d": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "192a29dd09cd4293910d24a1ffc966e0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "1983ea064b664a9a9db0fb86e94b97e0": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "19c133e5b57341408e4057b707324c01": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "1ac4479c1fed4048af0a6c06be0f3977": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_8ca538d97b1b4aae8c01adc643570ee2",
       "placeholder": "​",
       "style": "IPY_MODEL_4921d43793cf4e8b860b0f1e97f3b052",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "1b2aa87557354f1686f77c08cf7e79b6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "1ce8a0e9644f4126a52b324ece3a5e6f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "2087f1472d8340a5af5530f9ac121a44": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "215485eb54504420802c65f2780050a6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "221434e79ff44393b58878e7ad328810": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "2635694e353c4cc1b3910143a374bfdc": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "293d9b06586a455fa5423be16283e76b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "2aba2b8eda3e4395bcc1ab81c2407ed1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "2b5120b5ddac4e8cb06ba4e985d2971b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "2d5216ceecf048ca8bd4c9a6a3508b77": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_310b690c034d47289d6fe25b13dad9be",
       "placeholder": "​",
       "style": "IPY_MODEL_045285f0a0fd4f89a47c8d37dbe21952",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:37&lt;00:00,  1.57s/it]"
      }
     },
     "2d721195bb91439294e541d95a5d0b15": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_e7635cac3ace414c840f60f40bc71f86",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_32409b262e234074ad779bfaf0dacb00",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "2fc058cd44ea4591aa9cff798986a466": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "310b690c034d47289d6fe25b13dad9be": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "31194583235e42da815db452924d8a78": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_e5deb5face40404a871d5b8a90df8e26",
       "placeholder": "​",
       "style": "IPY_MODEL_50d82476edc84e6386c0f9f3957539bd",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:37&lt;00:00,  1.64s/it]"
      }
     },
     "3172bd39e4bc4c4fbbe60ff949de7a62": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_8e56e530c12646a19787cd269edf6eb6",
       "placeholder": "​",
       "style": "IPY_MODEL_192a29dd09cd4293910d24a1ffc966e0",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:37&lt;00:00,  1.60s/it]"
      }
     },
     "323752da1ee54487bd00334223dde0e6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "32409b262e234074ad779bfaf0dacb00": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "324c01fa125c4f928d8a0930ede51431": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_2fc058cd44ea4591aa9cff798986a466",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_8aa4255d78bc4d2b8827824f1c7fa73f",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "336bf7a9ffe74fcd872edc6b8cc381f0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_1ac4479c1fed4048af0a6c06be0f3977",
        "IPY_MODEL_4516b4bc687c4c5d947cf5f70f8816f6",
        "IPY_MODEL_bbea5535df0f4d1fa18ac0aaa2af5f95"
       ],
       "layout": "IPY_MODEL_a88c995ed34044f597c845724cc7cf83",
       "tabbable": null,
       "tooltip": null
      }
     },
     "33d232439c654d50a5fc931c092affd6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_f7993a9e902e430c9ebda7eb63564716",
       "placeholder": "​",
       "style": "IPY_MODEL_549c64426b1341e9adee40c11f5e8abb",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:36&lt;00:00,  1.62s/it]"
      }
     },
     "34584c46815046038987046531821754": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "34889113ea0e4163965706e36cacd03a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_e3f2a77689e54f38b806df2ab4d0d661",
        "IPY_MODEL_ed2bc03125344cd5b838d5ce50bd466e",
        "IPY_MODEL_6333552d3b25421fa385347067477fa3"
       ],
       "layout": "IPY_MODEL_5f02f10c425a4ad08d8ea4bfd08eaa24",
       "tabbable": null,
       "tooltip": null
      }
     },
     "3490dc4a5dbb4831943c3ab3f31c18d6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_110c249ec454453696314783796141d9",
       "placeholder": "​",
       "style": "IPY_MODEL_b946495304914b9ea201e68aef471594",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "359b09abccc84ad699de97bfcdaa78e1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_1983ea064b664a9a9db0fb86e94b97e0",
       "placeholder": "​",
       "style": "IPY_MODEL_65f52ebfd7674f1a90c16b3194e4cd1c",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:38&lt;00:00,  1.62s/it]"
      }
     },
     "37f38c099e8544de853f04aaa83f9a05": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_783e9f784b8a47bda0a400fb48c75fdb",
        "IPY_MODEL_324c01fa125c4f928d8a0930ede51431",
        "IPY_MODEL_8ec811f4895c4572aeedcdf2b76bc80f"
       ],
       "layout": "IPY_MODEL_2087f1472d8340a5af5530f9ac121a44",
       "tabbable": null,
       "tooltip": null
      }
     },
     "3874c297a7c14349a62ab3694770b850": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_8e3e8467881c4ac6a3397aa90bb7318e",
       "placeholder": "​",
       "style": "IPY_MODEL_15681f0b0cc342acb9431ea7af765496",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:36&lt;00:00,  1.64s/it]"
      }
     },
     "3958ddfe9d8244cc851f18ed2ff5916a": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "3c4ebd933b214728a1af01cebdd44b7b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_bf80c59135834797a33409790fd16cb9",
       "placeholder": "​",
       "style": "IPY_MODEL_07f5c3110f234399b4681f31eea2c014",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [09:21&lt;00:00,  8.60s/it]"
      }
     },
     "3d768f16153945ce832821fbbf9b048a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "3fca49e181dd47568ed520e5e00b1e99": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "3fcb5a57c5614f658fc88cce98c76ce0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "434d93e0d66e45a9bf54d24be44f5232": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_7e02d871b0f64e14a7a17679080ca6f8",
       "placeholder": "​",
       "style": "IPY_MODEL_0308c29b7b6446568a75c93fba850c70",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [05:51&lt;00:00,  6.22s/it]"
      }
     },
     "4516b4bc687c4c5d947cf5f70f8816f6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_0e59f8587880483096e479458d01265e",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_79e04e15187e4f9da866e599603e1e92",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "4720d98c0c204111a344b6ddfaee2992": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "48aecba37e2d482a864dfcfe625791b8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "4921d43793cf4e8b860b0f1e97f3b052": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "4bf16e6248514632aec8420612813e7a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "4d88d68107774163be820aceb4993a5f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "4f4c89e76105472d8a97ed36e51e6430": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_a7136c86ce6d4291aabebbc79733b24f",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_323752da1ee54487bd00334223dde0e6",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "50d82476edc84e6386c0f9f3957539bd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "51d2b1fb3376493695562727dd53bd8c": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "549c64426b1341e9adee40c11f5e8abb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "54d1eea9426d425db1dd2ac049b66831": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_5da50eb390d84f7c93e6a0828a718ce6",
       "placeholder": "​",
       "style": "IPY_MODEL_9ab4965bf2ce4c5ba24a461cf4e8255a",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "57e347e93b6544ed906868835d6f329e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_84573aabdf0f4f6dab398f895a55a0cd",
        "IPY_MODEL_c2e0a04d62be4de78cfac6108f98d3d8",
        "IPY_MODEL_cc183822d6ed42eaab2f4bc253ad0b8e"
       ],
       "layout": "IPY_MODEL_7a2209a9cace4979803b3936bde47d02",
       "tabbable": null,
       "tooltip": null
      }
     },
     "5a446cd1bcd84388a993311d70a7f5cb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "5b5223514f69450994fe4815da92f91e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_54d1eea9426d425db1dd2ac049b66831",
        "IPY_MODEL_cae5a6e2e61f41d3ae0d9865e68c88f1",
        "IPY_MODEL_5b6df791d404475db653fb18c472bc0f"
       ],
       "layout": "IPY_MODEL_19c133e5b57341408e4057b707324c01",
       "tabbable": null,
       "tooltip": null
      }
     },
     "5b6df791d404475db653fb18c472bc0f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_2635694e353c4cc1b3910143a374bfdc",
       "placeholder": "​",
       "style": "IPY_MODEL_d67db1bdc78e4e81bde6e5628f9ecb81",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [08:13&lt;00:00,  7.73s/it]"
      }
     },
     "5c65028ad7ee41778e585f7a2790c265": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "5da50eb390d84f7c93e6a0828a718ce6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "5e5f367cb7b74385885016a5aef915ff": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "5f02f10c425a4ad08d8ea4bfd08eaa24": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "608f86db86d54897ab66c26affe9a8e9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "62a4985c726c4a1ca7541f6456f1bd77": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "6333552d3b25421fa385347067477fa3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_f78b920fa2324dbcba73aa60eacf29ca",
       "placeholder": "​",
       "style": "IPY_MODEL_4d88d68107774163be820aceb4993a5f",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [01:57&lt;00:00,  2.27s/it]"
      }
     },
     "64e758ec9f8c4e9b971ca0dce6759669": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "652fb0429ef04b9ea78f1913bdf2e207": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_8e95aecd0df5485aad4c720d64de9457",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_293d9b06586a455fa5423be16283e76b",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "65b1fa8834c24b2583ec494ec93a2624": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_047469257ce54362b35c3f7cf96fe49b",
        "IPY_MODEL_93560e958b654934b4434ff68847b8cb",
        "IPY_MODEL_3172bd39e4bc4c4fbbe60ff949de7a62"
       ],
       "layout": "IPY_MODEL_f353190e721b43cbb1597cc29c8631f8",
       "tabbable": null,
       "tooltip": null
      }
     },
     "65f52ebfd7674f1a90c16b3194e4cd1c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "6ada5a04ee564c379b77e4f97eeec9bd": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "6b8e4bf2b8274305a25a208883f355f7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_b458676de22f42a3bb2e9f90245a7d78",
        "IPY_MODEL_11ae7a46a1af4588aadd14394906d280",
        "IPY_MODEL_d033301ee3784814814dc1776ad51fa3"
       ],
       "layout": "IPY_MODEL_cce0a3fda7e64710a721ab83103a007e",
       "tabbable": null,
       "tooltip": null
      }
     },
     "6c7ec7a637b74a8ca441cd6569993e36": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_b7f88b5ed8d34298a1652cf333a10d5f",
       "placeholder": "​",
       "style": "IPY_MODEL_bad8c7f1f0a14939b6eb1800273bb5f6",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "730a49df53a9480a87c5497c8dfd4524": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "74a5c70cb5cf40d2bb39fa9e70990b67": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "74d6d819a65648359d722b30bf642ccc": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_3490dc4a5dbb4831943c3ab3f31c18d6",
        "IPY_MODEL_2d721195bb91439294e541d95a5d0b15",
        "IPY_MODEL_f71094ca30094dba94a6a92d82b7927c"
       ],
       "layout": "IPY_MODEL_e587affabd3140658bccf9872e093242",
       "tabbable": null,
       "tooltip": null
      }
     },
     "7822b02791414d72978ddf7e7ea86811": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "783e9f784b8a47bda0a400fb48c75fdb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_f49ace193c5f4681a5c6afcb152c49d7",
       "placeholder": "​",
       "style": "IPY_MODEL_b87a323101b34aa2a8d2d5916a059f91",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "79e04e15187e4f9da866e599603e1e92": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "7a2209a9cace4979803b3936bde47d02": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "7a6c8c7e5aa1459d8dc1894e327ab6a9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "7bd0f9c7cbf648469b8c8bbf215c10c6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "7e02d871b0f64e14a7a17679080ca6f8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "7f1e231ad09d4622b3095bdf2fa298b2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "81b4fe199f4a4874bc9c52e49ef1ef9c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_f3583d122f64424cac3684151d3194a6",
        "IPY_MODEL_086405b23a1a412db6a57e16fbc614bc",
        "IPY_MODEL_b2cc534e7d2d4b61a0944e630df89653"
       ],
       "layout": "IPY_MODEL_041cc13ac27c4af3892d36a56c0ae2c0",
       "tabbable": null,
       "tooltip": null
      }
     },
     "8363150a8ec74bc6bd2fc723957ebd01": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "84573aabdf0f4f6dab398f895a55a0cd": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_f917f83feb9547e49aecd53cc67dab6b",
       "placeholder": "​",
       "style": "IPY_MODEL_000b9f0f47124eb9978d58c3fdc5f195",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "8a6106451299406887f8f3a8596e1907": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "8aa4255d78bc4d2b8827824f1c7fa73f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "8ca538d97b1b4aae8c01adc643570ee2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "8d58cb31f2e04ee594bd7cdc558d82ac": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "8e3e8467881c4ac6a3397aa90bb7318e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "8e56e530c12646a19787cd269edf6eb6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "8e95aecd0df5485aad4c720d64de9457": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "8ec811f4895c4572aeedcdf2b76bc80f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_fec091cfa0d0499bbf1d68202ba8b09c",
       "placeholder": "​",
       "style": "IPY_MODEL_7f1e231ad09d4622b3095bdf2fa298b2",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [10:58&lt;00:00, 10.18s/it]"
      }
     },
     "930e84bd91be446399a5c91bf6335202": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "93560e958b654934b4434ff68847b8cb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_5c65028ad7ee41778e585f7a2790c265",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_7bd0f9c7cbf648469b8c8bbf215c10c6",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "9ab4965bf2ce4c5ba24a461cf4e8255a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "9bf3128d993349458bc317c4c24016e6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "9f949163ff8a4fc7a16cdd5665245cec": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "a089c19225f54b629f87182360ed998d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "a0900e23143c4bb8a4bf717735971ae1": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "a13395b6e79e487c938057b65d186537": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_e0aa54ed548441e7921e5a6c8b1b3548",
        "IPY_MODEL_652fb0429ef04b9ea78f1913bdf2e207",
        "IPY_MODEL_434d93e0d66e45a9bf54d24be44f5232"
       ],
       "layout": "IPY_MODEL_9f949163ff8a4fc7a16cdd5665245cec",
       "tabbable": null,
       "tooltip": null
      }
     },
     "a344809cbeae4b5eab24b60bc65f8f53": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "a7136c86ce6d4291aabebbc79733b24f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "a774b29558a74f3c86b00fe1138a32b3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "a8050f0d4ba74635899fac0d3d5d1c5e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "a88c995ed34044f597c845724cc7cf83": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b2cc534e7d2d4b61a0944e630df89653": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_e24fb8f8b7b04bf6bc4e01301c35fd98",
       "placeholder": "​",
       "style": "IPY_MODEL_1288a29e57d14b6599aa0a169a78e8e5",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [06:51&lt;00:00,  6.98s/it]"
      }
     },
     "b2e3b7d580f74ae8846916f9eb35fdf3": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b458676de22f42a3bb2e9f90245a7d78": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_9bf3128d993349458bc317c4c24016e6",
       "placeholder": "​",
       "style": "IPY_MODEL_930e84bd91be446399a5c91bf6335202",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "b67e4ba8fc524a179adaf56829b4f49b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_6ada5a04ee564c379b77e4f97eeec9bd",
       "placeholder": "​",
       "style": "IPY_MODEL_2aba2b8eda3e4395bcc1ab81c2407ed1",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "b7f88b5ed8d34298a1652cf333a10d5f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b87a323101b34aa2a8d2d5916a059f91": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "b946495304914b9ea201e68aef471594": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "ba9ce5102e1d48b198d3590182a13b16": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_34584c46815046038987046531821754",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_64e758ec9f8c4e9b971ca0dce6759669",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "bad8c7f1f0a14939b6eb1800273bb5f6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "bbea5535df0f4d1fa18ac0aaa2af5f95": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_62a4985c726c4a1ca7541f6456f1bd77",
       "placeholder": "​",
       "style": "IPY_MODEL_1ce8a0e9644f4126a52b324ece3a5e6f",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [03:17&lt;00:00,  3.45s/it]"
      }
     },
     "bcd0344fb6554d44b13a7c1ff9100e6d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_a8050f0d4ba74635899fac0d3d5d1c5e",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_db2a61168441489fa1a6919c1bafb73a",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "bf80c59135834797a33409790fd16cb9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "c04d52ceceaf49619328dbe7a1c1c881": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "c15d5eeb403c43b3abc97995563a94e9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_608f86db86d54897ab66c26affe9a8e9",
       "placeholder": "​",
       "style": "IPY_MODEL_a089c19225f54b629f87182360ed998d",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "c2e0a04d62be4de78cfac6108f98d3d8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_e573fd9c0e2c4b26a808d581ded173a1",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_cb0f1b1f11c74343af3c1827ada78b2a",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "ca1ccd56748040319c90b3a3ed2cf6a3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_e93b974230fd495cb6d56a19014e8d58",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_08dfff1b429c426094fb4c7b516e251a",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "cae5a6e2e61f41d3ae0d9865e68c88f1": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_f32074fedf064ce382c0a9ae465ca0ed",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_e26d54a0259643319bf6b6f29a99244b",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "cb0f1b1f11c74343af3c1827ada78b2a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "cc183822d6ed42eaab2f4bc253ad0b8e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_ebf008cc252c496abe4e6b0ec9aa9b4b",
       "placeholder": "​",
       "style": "IPY_MODEL_5a446cd1bcd84388a993311d70a7f5cb",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:36&lt;00:00,  1.63s/it]"
      }
     },
     "cce0a3fda7e64710a721ab83103a007e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "d033301ee3784814814dc1776ad51fa3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_51d2b1fb3376493695562727dd53bd8c",
       "placeholder": "​",
       "style": "IPY_MODEL_2b5120b5ddac4e8cb06ba4e985d2971b",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [02:37&lt;00:00,  1.63s/it]"
      }
     },
     "d0d9b557434142a3b43d4fbf22dd1ea9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_48aecba37e2d482a864dfcfe625791b8",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_a344809cbeae4b5eab24b60bc65f8f53",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "d27927e59fa74d9badddadbd791c8ad2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "d67db1bdc78e4e81bde6e5628f9ecb81": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "d6f3eb4810ea4f7c85b2efbbcb9b4a65": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_0c013f91e93b482d9a28ac3f56a17607",
       "placeholder": "​",
       "style": "IPY_MODEL_3fcb5a57c5614f658fc88cce98c76ce0",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "d9302da4429744928a4fcff6fa65ab99": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "db2a61168441489fa1a6919c1bafb73a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "dbbfae222cbf485aa9e7d333130571a9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "dd7522006c294f20933b01b2ece146e7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "df196f67ddf7462a86e854732ef1ffb7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_c15d5eeb403c43b3abc97995563a94e9",
        "IPY_MODEL_d0d9b557434142a3b43d4fbf22dd1ea9",
        "IPY_MODEL_3c4ebd933b214728a1af01cebdd44b7b"
       ],
       "layout": "IPY_MODEL_1b2aa87557354f1686f77c08cf7e79b6",
       "tabbable": null,
       "tooltip": null
      }
     },
     "e0aa54ed548441e7921e5a6c8b1b3548": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_a0900e23143c4bb8a4bf717735971ae1",
       "placeholder": "​",
       "style": "IPY_MODEL_8d58cb31f2e04ee594bd7cdc558d82ac",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "e24fb8f8b7b04bf6bc4e01301c35fd98": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e26d54a0259643319bf6b6f29a99244b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "e2abd41245b542f8bb213325a749e212": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e3f2a77689e54f38b806df2ab4d0d661": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_c04d52ceceaf49619328dbe7a1c1c881",
       "placeholder": "​",
       "style": "IPY_MODEL_e7aa24b623eb4db4b111e6cef3eb7438",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "e417980d83f44b4cbb48c8abc861eafb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_b2e3b7d580f74ae8846916f9eb35fdf3",
       "placeholder": "​",
       "style": "IPY_MODEL_3d768f16153945ce832821fbbf9b048a",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "e573fd9c0e2c4b26a808d581ded173a1": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e587affabd3140658bccf9872e093242": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e5deb5face40404a871d5b8a90df8e26": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e7635cac3ace414c840f60f40bc71f86": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e7aa24b623eb4db4b111e6cef3eb7438": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "e85288ec6f754db1896b61068d5fbb4e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_b67e4ba8fc524a179adaf56829b4f49b",
        "IPY_MODEL_fce58452ec9e416f808d74a66f014425",
        "IPY_MODEL_31194583235e42da815db452924d8a78"
       ],
       "layout": "IPY_MODEL_e2abd41245b542f8bb213325a749e212",
       "tabbable": null,
       "tooltip": null
      }
     },
     "e93b974230fd495cb6d56a19014e8d58": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "eb37814df4b44656878e9fd68412171d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "ebf008cc252c496abe4e6b0ec9aa9b4b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "ed2bc03125344cd5b838d5ce50bd466e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_d27927e59fa74d9badddadbd791c8ad2",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_7a6c8c7e5aa1459d8dc1894e327ab6a9",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "f32074fedf064ce382c0a9ae465ca0ed": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "f353190e721b43cbb1597cc29c8631f8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "f3583d122f64424cac3684151d3194a6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_221434e79ff44393b58878e7ad328810",
       "placeholder": "​",
       "style": "IPY_MODEL_dbbfae222cbf485aa9e7d333130571a9",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "f49ace193c5f4681a5c6afcb152c49d7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "f4de0ae536864134bac9ce3defeb3415": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_008f4cdd466b4f8291b37161a6af7d5e",
        "IPY_MODEL_4f4c89e76105472d8a97ed36e51e6430",
        "IPY_MODEL_2d5216ceecf048ca8bd4c9a6a3508b77"
       ],
       "layout": "IPY_MODEL_3958ddfe9d8244cc851f18ed2ff5916a",
       "tabbable": null,
       "tooltip": null
      }
     },
     "f71094ca30094dba94a6a92d82b7927c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_8a6106451299406887f8f3a8596e1907",
       "placeholder": "​",
       "style": "IPY_MODEL_4720d98c0c204111a344b6ddfaee2992",
       "tabbable": null,
       "tooltip": null,
       "value": " 100/100 [04:37&lt;00:00,  5.29s/it]"
      }
     },
     "f78b920fa2324dbcba73aa60eacf29ca": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "f7993a9e902e430c9ebda7eb63564716": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "f8c9269ecb8743a48d480040f1480a86": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_6c7ec7a637b74a8ca441cd6569993e36",
        "IPY_MODEL_bcd0344fb6554d44b13a7c1ff9100e6d",
        "IPY_MODEL_359b09abccc84ad699de97bfcdaa78e1"
       ],
       "layout": "IPY_MODEL_3fca49e181dd47568ed520e5e00b1e99",
       "tabbable": null,
       "tooltip": null
      }
     },
     "f917f83feb9547e49aecd53cc67dab6b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "faacec62fb0a4f138fee63b56e08c091": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_e417980d83f44b4cbb48c8abc861eafb",
        "IPY_MODEL_ba9ce5102e1d48b198d3590182a13b16",
        "IPY_MODEL_33d232439c654d50a5fc931c092affd6"
       ],
       "layout": "IPY_MODEL_215485eb54504420802c65f2780050a6",
       "tabbable": null,
       "tooltip": null
      }
     },
     "fce58452ec9e416f808d74a66f014425": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_dd7522006c294f20933b01b2ece146e7",
       "max": 100,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_a774b29558a74f3c86b00fe1138a32b3",
       "tabbable": null,
       "tooltip": null,
       "value": 100
      }
     },
     "fec091cfa0d0499bbf1d68202ba8b09c": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
